diff options
Diffstat (limited to 'routers')
| -rw-r--r-- | routers/recipes.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/routers/recipes.py b/routers/recipes.py index 000f945..d06c335 100644 --- a/routers/recipes.py +++ b/routers/recipes.py @@ -49,6 +49,19 @@ def get_recipe(id: int, db: Session = Depends(get_db)): return recipe +@router.put("/{id}", response_model=RecipeRead) +def update_recipe(id: int, update: RecipeUpdate, db: Session = Depends(get_db)): + """Update a recipe.""" + recipe = db.query(Recipe).filter(Recipe.id == id).first() + if not recipe: + raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail="Recipe not found") + for field, value in update.model_dump(exclude_unset=True).items(): + setattr(recipe, field, value) + db.commit() + db.refresh(recipe) + return recipe + + @router.delete("/{id}", status_code=status.HTTP_204_NO_CONTENT) def delete_recipe(id: int, db: Session = Depends(get_db)): """Delete a recipe.""" |
