sumaq/backend/app/api/v1/endpoints/guest.py

37 lines
1.2 KiB
Python

from fastapi import APIRouter, Depends, UploadFile, File
from sqlalchemy.orm import Session
from typing import Optional
from app.db.database import get_db
from app.services.guest import GuestService
from app.schemas.non_conformity import NonConformity, NonConformityUpdate
from app.schemas.evidence import Evidence
router = APIRouter()
def get_guest_service(db: Session = Depends(get_db)) -> GuestService:
return GuestService(db)
@router.get("/nc/{access_hash}", response_model=NonConformity)
def read_guest_nc(
access_hash: str,
service: GuestService = Depends(get_guest_service)
):
return service.get_nc_by_hash(access_hash)
@router.patch("/nc/{access_hash}", response_model=NonConformity)
def update_guest_nc(
access_hash: str,
nc_update: NonConformityUpdate,
service: GuestService = Depends(get_guest_service)
):
return service.update_guest_nc(access_hash, nc_update)
@router.post("/nc/{access_hash}/upload", response_model=Evidence)
async def upload_guest_evidence(
access_hash: str,
file: UploadFile = File(...),
description: Optional[str] = None,
service: GuestService = Depends(get_guest_service)
):
return service.upload_guest_evidence(access_hash, file, description)