| from fastapi import FastAPI, File, UploadFile, HTTPException |
| from firebase_admin import credentials, storage |
| import firebase_admin |
| from uuid import uuid4 |
| from fastapi import APIRouter |
| from config.firebase_cfg import init_firebase |
|
|
| init_firebase() |
|
|
| upload_router = APIRouter() |
|
|
| @upload_router.post("/upload_pdf") |
| async def upload_pdf(file: UploadFile = File(...)): |
| if file.content_type != "application/pdf": |
| raise HTTPException(status_code=400, detail="must be PDF file") |
| |
| file_name = f"{uuid4()}.pdf" |
|
|
| bucket = storage.bucket() |
| blob = bucket.blob(file_name) |
| |
| blob.upload_from_file(file.file, content_type="application/pdf") |
| blob.make_public() |
|
|
| file_url = blob.public_url |
| return {"file_url": file_url} |
|
|
| @upload_router.post("/upload_docs") |
| async def upload_docs(file: UploadFile = File(...)): |
| if file.content_type != "application/docs": |
| raise HTTPException(status_code=400, detail="must be DOCS file") |
| |
| file_name = f"{uuid4()}.docs" |
|
|
| bucket = storage.bucket() |
| blob = bucket.blob(file_name) |
| |
| blob.upload_from_file(file.file, content_type="application/docs") |
| blob.make_public() |
|
|
| file_url = blob.public_url |
| return {"file_url": file_url} |
|
|
| @upload_router.post("/delete_file") |
| async def delete_file(file_name: str): |
| try: |
| bucket = storage.bucket() |
| blob = bucket.blob(file_name) |
|
|
| if not blob.exists(): |
| raise HTTPException(status_code=404, detail="File not found") |
|
|
| blob.delete() |
|
|
| return {"message": f"File {file_name} deleted successfully"} |
| except Exception as e: |
| raise HTTPException(status_code=500, detail=f"An error occurred: {str(e)}") |
|
|
| |
| |
|
|
| |