37 lines
1.2 KiB
Python
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)
|