38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
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
|