30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
from fastapi import APIRouter, Depends, UploadFile, File, BackgroundTasks, HTTPException
|
|
from sqlalchemy.ext.asyncio import AsyncSession
|
|
from app.db.session import get_db
|
|
from app.services.document_service import DocumentService
|
|
|
|
router = APIRouter()
|
|
|
|
@router.post("/upload/{parent_type}/{parent_id}")
|
|
async def upload_document(
|
|
parent_type: str,
|
|
parent_id: str,
|
|
background_tasks: BackgroundTasks,
|
|
file: UploadFile = File(...),
|
|
db: AsyncSession = Depends(get_db)
|
|
):
|
|
"""
|
|
Dokumentum feltöltés, optimalizálás és NAS-ra mentés.
|
|
parent_type: 'organizations' vagy 'assets'
|
|
"""
|
|
if parent_type not in ["organizations", "assets"]:
|
|
raise HTTPException(status_code=400, detail="Érvénytelen cél-típus!")
|
|
|
|
doc = await DocumentService.process_upload(file, parent_type, parent_id, db, background_tasks)
|
|
|
|
return {
|
|
"document_id": doc.id,
|
|
"thumbnail": doc.thumbnail_path,
|
|
"original_name": doc.original_name,
|
|
"status": "processed_and_vaulted"
|
|
} |