from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from typing import List from .. import crud, models, schemas from ..database import get_db router = APIRouter( prefix="/api/celebrities", tags=["celebrities"], responses={404: {"description": "Not found"}}, ) @router.post("/", response_model=schemas.Celebrity, status_code=201) def create_celebrity(celebrity: schemas.CelebrityCreate, db: Session = Depends(get_db)): # Qui potresti aggiungere un check per vedere se una celebrità con lo stesso nome esiste già return crud.create_celebrity(db=db, celebrity=celebrity) @router.get("/", response_model=List[schemas.Celebrity]) def read_celebrities(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): celebrities = crud.get_celebrities(db, skip=skip, limit=limit) return celebrities @router.get("/{celebrity_id}", response_model=schemas.Celebrity) def read_celebrity(celebrity_id: int, db: Session = Depends(get_db)): db_celebrity = crud.get_celebrity(db, celebrity_id=celebrity_id) if db_celebrity is None: raise HTTPException(status_code=404, detail="Celebrity not found") return db_celebrity @router.put("/{celebrity_id}", response_model=schemas.Celebrity) def update_celebrity(celebrity_id: int, celebrity: schemas.CelebrityUpdate, db: Session = Depends(get_db)): db_celebrity = crud.update_celebrity(db, celebrity_id=celebrity_id, celebrity_update=celebrity) if db_celebrity is None: raise HTTPException(status_code=404, detail="Celebrity not found") return db_celebrity @router.delete("/{celebrity_id}", response_model=schemas.Celebrity) def delete_celebrity(celebrity_id: int, db: Session = Depends(get_db)): db_celebrity = crud.delete_celebrity(db, celebrity_id=celebrity_id) if db_celebrity is None: raise HTTPException(status_code=404, detail="Celebrity not found") return db_celebrity