Finished @ROUTES.put(f"/api/assets/{{id:{UUID_RE}}}/preview")

This commit is contained in:
Jedrzej Kosinski
2026-01-16 00:14:03 -08:00
parent e0c063f93e
commit e69a5aa1be
3 changed files with 88 additions and 0 deletions

View File

@@ -810,3 +810,25 @@ def remove_missing_tag_for_asset_id(
AssetInfoTag.tag_name == "missing",
)
)
def set_asset_info_preview(
session: Session,
*,
asset_info_id: str,
preview_asset_id: str | None = None,
) -> None:
"""Set or clear preview_id and bump updated_at. Raises on unknown IDs."""
info = session.get(AssetInfo, asset_info_id)
if not info:
raise ValueError(f"AssetInfo {asset_info_id} not found")
if preview_asset_id is None:
info.preview_id = None
else:
# validate preview asset exists
if not session.get(Asset, preview_asset_id):
raise ValueError(f"Preview Asset {preview_asset_id} not found")
info.preview_id = preview_asset_id
info.updated_at = utcnow()
session.flush()