from fastapi import APIRouter, HTTPException, Request from src.config import logger from src.services import FileService from src.schemas import InsertFileSchema class FileController: def __init__(self): self.service = FileService self.api_router = APIRouter() self.api_router.add_api_route("/files", self.insert_file, methods=["POST"]) async def insert_file(self, request: Request, data: InsertFileSchema): try: user_id = request.state.user["user_id"] file = data.file async with self.service() as service: return await service.insert_file(file=file, user_id=user_id) except Exception as e: logger.error(f"Error while inserting file: {str(e)}") raise HTTPException(status_code=500, detail=str(e))