file_table_reader/api/routers/upload_file_router.py

41 lines
1.3 KiB
Python
Raw Permalink Normal View History

2025-11-06 07:23:24 +00:00
2025-11-17 03:53:15 +00:00
from fastapi import APIRouter, File, Form, UploadFile, Depends
2025-11-06 07:23:24 +00:00
from pydantic import BaseModel
2025-11-24 01:57:43 +00:00
from typing import Any, Dict, List, Optional
2025-11-06 07:23:24 +00:00
from services.upload_file.upload import handle_upload_file, handle_process_pdf, handle_to_postgis
2025-11-17 03:53:15 +00:00
from api.deps.role_dependency import require_role
from database.connection import engine
2025-11-06 07:23:24 +00:00
router = APIRouter()
@router.post("/file")
2025-11-17 03:53:15 +00:00
# async def upload_file(file: UploadFile = File(...), page: Optional[str] = Form(""), sheet: Optional[str] = Form(""), user = Depends(require_role("admin"))):
2025-12-22 08:17:39 +00:00
async def upload_file(file: UploadFile = File(...), page: Optional[str] = Form(""), sheet: Optional[str] = Form(""), file_desc: Optional[str] = Form("")):
return await handle_upload_file(file, page, sheet, file_desc)
2025-11-06 07:23:24 +00:00
class PdfRequest(BaseModel):
title: str
columns: List[str]
rows: List[List]
2025-12-22 08:17:39 +00:00
fileName: str
fileDesc: str
2025-11-06 07:23:24 +00:00
@router.post("/process-pdf")
async def upload_file(payload: PdfRequest):
return await handle_process_pdf(payload)
class UploadRequest(BaseModel):
title: str
rows: List[dict]
columns: List[str]
2025-11-24 01:57:43 +00:00
author: Dict[str, Any]
2025-12-22 08:17:39 +00:00
style: str
2025-11-06 07:23:24 +00:00
@router.post("/to-postgis")
2025-11-17 03:53:15 +00:00
async def upload_to_postgis(payload: UploadRequest):
2025-11-24 01:57:43 +00:00
# return await handle_to_postgis(payload, engine)
return await handle_to_postgis(payload)