Add API to upload any type of file
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from fastapi import APIRouter, HTTPException
|
from fastapi import APIRouter, HTTPException, File, UploadFile
|
||||||
import requests
|
import requests
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from minio import Minio
|
from minio import Minio
|
||||||
@@ -12,26 +12,57 @@ from datetime import datetime
|
|||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
class fileUploud(BaseModel):
|
class medCertUploud(BaseModel):
|
||||||
fullName: str
|
fullName: str
|
||||||
docfname: str
|
docfname: str
|
||||||
startDate: str
|
startDate: str
|
||||||
endDate: str
|
endDate: str
|
||||||
returnDate: str
|
returnDate: str
|
||||||
|
|
||||||
|
|
||||||
# Get List of all files by patient
|
# Get List of all files by patient
|
||||||
@router.post("/files/generate/", tags="patients_files")
|
@router.post("/files/upload/file/", tags="patients_files")
|
||||||
async def read_all_files_by_patient(requestItem: fileUploud):
|
async def generateAndUploudMedCert( file: UploadFile = File(...)):
|
||||||
uploudFile(requestItem.fullName,
|
extension = file.filename.split(".")
|
||||||
|
print(file.file)
|
||||||
|
print(file.filename)
|
||||||
|
print(extension)
|
||||||
|
print(file.size)
|
||||||
|
uploudFile(file.filename, extension[1], file.file, file.size)
|
||||||
|
|
||||||
|
return {"message": "Successfully Uploaded File"}
|
||||||
|
|
||||||
|
# Get List of all files by patient
|
||||||
|
@router.post("/files/generate/med-cert/", tags="patients_files")
|
||||||
|
async def generateAndUploudMedCert(requestItem: medCertUploud):
|
||||||
|
uploudMedCert(requestItem.fullName,
|
||||||
requestItem.docfname,
|
requestItem.docfname,
|
||||||
requestItem.startDate,
|
requestItem.startDate,
|
||||||
requestItem.endDate,
|
requestItem.endDate,
|
||||||
requestItem.returnDate)
|
requestItem.returnDate)
|
||||||
return {"message": "Successfully Generated File"}
|
return {"message": "Successfully Generated File"}
|
||||||
|
|
||||||
w,h = A4
|
def uploudFile(fileName, extension, content, size):
|
||||||
|
client = Minio("minio:9000",
|
||||||
|
access_key="user1",
|
||||||
|
secret_key="C@rtoon1995",
|
||||||
|
secure=False
|
||||||
|
)
|
||||||
|
found = client.bucket_exists("mih")
|
||||||
|
if not found:
|
||||||
|
client.make_bucket("mih")
|
||||||
|
else:
|
||||||
|
print("Bucket already exists")
|
||||||
|
client.put_object("mih",
|
||||||
|
fileName,
|
||||||
|
content,
|
||||||
|
length=size,
|
||||||
|
content_type=f"application/{extension}",)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#"minio""localhost:9000"
|
#"minio""localhost:9000"
|
||||||
def uploudFile(fullName, docfname, startDate, endDate, returnDate):
|
def uploudMedCert(fullName, docfname, startDate, endDate, returnDate):
|
||||||
client = Minio("minio:9000",
|
client = Minio("minio:9000",
|
||||||
access_key="user1",
|
access_key="user1",
|
||||||
secret_key="C@rtoon1995",
|
secret_key="C@rtoon1995",
|
||||||
@@ -40,13 +71,14 @@ def uploudFile(fullName, docfname, startDate, endDate, returnDate):
|
|||||||
generateMedCertPDF(fullName, docfname, startDate, endDate, returnDate)
|
generateMedCertPDF(fullName, docfname, startDate, endDate, returnDate)
|
||||||
found = client.bucket_exists("mih")
|
found = client.bucket_exists("mih")
|
||||||
if not found:
|
if not found:
|
||||||
client.make_bucket("mih")
|
client.make_bucket("mih")
|
||||||
else:
|
else:
|
||||||
print("Bucket already exists")
|
print("Bucket already exists")
|
||||||
fileName = f"Med-Cert-{fullName}-{startDate}.pdf"
|
fileName = f"Med-Cert-{fullName}-{startDate}.pdf"
|
||||||
client.fput_object("mih", fileName, "temp.pdf")
|
client.fput_object("mih", fileName, "temp.pdf")
|
||||||
|
|
||||||
def generateMedCertPDF(fullName, docfname, startDate, endDate, returnDate):
|
def generateMedCertPDF(fullName, docfname, startDate, endDate, returnDate):
|
||||||
|
w,h = A4
|
||||||
today = datetime.today().strftime('%d-%m-%Y')
|
today = datetime.today().strftime('%d-%m-%Y')
|
||||||
myCanvas = canvas.Canvas("temp.pdf", pagesize=A4)
|
myCanvas = canvas.Canvas("temp.pdf", pagesize=A4)
|
||||||
myCanvas.setFont('Helvetica', 12)
|
myCanvas.setFont('Helvetica', 12)
|
||||||
|
|||||||
Reference in New Issue
Block a user