summaryrefslogtreecommitdiff
path: root/routers/recipes.py
diff options
context:
space:
mode:
Diffstat (limited to 'routers/recipes.py')
-rw-r--r--routers/recipes.py13
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."""