32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
import uuid
|
|
from typing import Annotated
|
|
|
|
from fastapi import APIRouter, Depends, status
|
|
|
|
from app.api.dependencies import get_exam_service
|
|
from app.schemas.exam import ExamTemplateCreate, ExamTemplateRead
|
|
from app.services.exam_service import ExamService
|
|
|
|
router = APIRouter(prefix="/templates", tags=["templates"])
|
|
|
|
|
|
@router.post("", response_model=ExamTemplateRead, status_code=status.HTTP_201_CREATED)
|
|
def create_template(
|
|
payload: ExamTemplateCreate,
|
|
service: Annotated[ExamService, Depends(get_exam_service)],
|
|
) -> ExamTemplateRead:
|
|
return service.create_template(payload)
|
|
|
|
|
|
@router.get("", response_model=list[ExamTemplateRead])
|
|
def list_templates(service: Annotated[ExamService, Depends(get_exam_service)]) -> list[ExamTemplateRead]:
|
|
return service.list_templates()
|
|
|
|
|
|
@router.get("/{template_id}", response_model=ExamTemplateRead)
|
|
def get_template(
|
|
template_id: uuid.UUID,
|
|
service: Annotated[ExamService, Depends(get_exam_service)],
|
|
) -> ExamTemplateRead:
|
|
return service.get_template(template_id)
|