from fastapi import APIRouter, HTTPException, Depends import src.messages as messages import src.models as models from src.database import get_session from sqlmodel import Session import src.templates.service as service router = APIRouter(prefix='/templates') @router.get('/', response_model=list[models.TemplatePublic]) def get_templates(session: Session = Depends(get_session)): return service.get_all(session) @router.get('/{id}', response_model=models.TemplatePublic) def get_template(id: int, session: Session = Depends(get_session)): result = service.get_one(session, id) if result is None: raise HTTPException(status_code=404, detail=messages.notfound) return result @router.post('/', response_model=models.TemplatePublic) def create_template(template: models.TemplateCreate, session: Session = Depends(get_session)): return service.create_one(session, template) @router.put('/{id}', response_model=models.TemplatePublic) def update_template(id: int, template: models.TemplateUpdate, session: Session = Depends(get_session)): result = service.update_one(session, id, template) if result is None: raise HTTPException(status_code=404, detail=messages.notfound) return result @router.delete('/{id}', response_model=models.TemplatePublic) def delete_template(id: int, session: Session = Depends(get_session)): result = service.delete_one(session, id) if result is None: raise HTTPException(status_code=404, detail=messages.notfound) return result