fix: #6802 prevent 500 internal server error when patching recipe tags (#6803)

Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
Co-authored-by: Michael Genson <genson.michael@gmail.com>
This commit is contained in:
Sim
2026-03-18 18:45:51 +00:00
committed by GitHub
parent c533da1c21
commit 26924ab054
3 changed files with 57 additions and 2 deletions

View File

@@ -9,7 +9,7 @@ def api_extras(func):
"""Decorator function to unpack the extras into a dict; requires an "extras" column"""
def wrapper(*args, **kwargs):
extras = kwargs.pop("extras")
extras = kwargs.pop("extras", None)
if extras is None:
extras = []

View File

@@ -201,6 +201,16 @@ class RepositoryRecipes(HouseholdRepositoryGeneric[Recipe, RecipeModel]):
additional_ids = self.session.execute(sa.select(model.id).filter(model.slug.in_(slugs))).scalars().all()
return ids + additional_ids
def update(self, match_value: str | int | UUID4, new_data: dict | Recipe) -> Recipe:
new_data = new_data if isinstance(new_data, dict) else new_data.model_dump()
# Handle explicit group_id injection for related items that require it
for organizer_field in ["tags", "recipe_category", "tools"]:
for organizer in new_data.get(organizer_field, []):
organizer["group_id"] = self.group_id
return super().update(match_value, new_data)
def page_all( # type: ignore
self,
pagination: PaginationQuery,