From 810aa3d48304e0a9888ca8ba7cb0040541ace679 Mon Sep 17 00:00:00 2001 From: openclaw Date: Sat, 11 Apr 2026 03:58:40 +0000 Subject: [PATCH] Add app/routers/categories.py --- app/routers/categories.py | 40 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 app/routers/categories.py diff --git a/app/routers/categories.py b/app/routers/categories.py new file mode 100644 index 0000000..cfdfbf4 --- /dev/null +++ b/app/routers/categories.py @@ -0,0 +1,40 @@ +from fastapi import APIRouter, Depends, HTTPException +from sqlalchemy.orm import Session +from app.database import get_db +from app.schemas.category import CategoryCreate, CategoryUpdate, CategoryResponse +from app.services import category_service + +router = APIRouter() + + +@router.post("", response_model=CategoryResponse, status_code=201) +def create(data: CategoryCreate, db: Session = Depends(get_db)): + return category_service.create_category(db, data) + + +@router.get("", response_model=list[CategoryResponse]) +def listar(db: Session = Depends(get_db)): + return category_service.get_categories(db) + + +@router.get("/{category_id}", response_model=CategoryResponse) +def obtener(category_id: str, db: Session = Depends(get_db)): + cat = category_service.get_category(db, category_id) + if not cat: + raise HTTPException(status_code=404, detail="Categoría no encontrada") + return cat + + +@router.put("/{category_id}", response_model=CategoryResponse) +def actualizar(category_id: str, data: CategoryUpdate, db: Session = Depends(get_db)): + cat = category_service.update_category(db, category_id, data) + if not cat: + raise HTTPException(status_code=404, detail="Categoría no encontrada") + return cat + + +@router.delete("/{category_id}", status_code=204) +def eliminar(category_id: str, db: Session = Depends(get_db)): + ok = category_service.delete_category(db, category_id) + if not ok: + raise HTTPException(status_code=404, detail="Categoría no encontrada")