feat: endpoint PUT /api/v1/images/{id}/tags — mise à jour manuelle des tags
CI / Lint & Format (push) Failing after 8s
CI / Tests (push) Has been skipped
CI / Security Scan (push) Failing after 7s
CI / Docker Build (push) Has been skipped

Permet au dashboard imagod-web de modifier les tags AI d'une image
via PUT /api/v1/images/{id}/tags avec body {"tags": ["tag1", "tag2"]}.
Scope requis : images:write
This commit is contained in:
2026-06-23 15:16:11 -04:00
parent eb75db7f12
commit 262f29f013
+28
View File
@@ -444,6 +444,34 @@ async def reprocess_image(
return ReprocessResponse(id=image_id)
# ─────────────────────────────────────────────────────────────
# TAGS (mise à jour manuelle)
# ─────────────────────────────────────────────────────────────
@router.put(
"/{image_id}/tags",
summary="Mettre à jour les tags d'une image",
description="Remplace complètement la liste des tags AI de l'image.",
dependencies=[Depends(require_scope("images:write"))],
)
async def update_tags(
image_id: int,
body: dict,
db: AsyncSession = Depends(get_db),
client: APIClient = Depends(get_current_client),
):
image = await get_image_or_404(image_id, client.id, db)
tags = body.get("tags", [])
if not isinstance(tags, list) or not all(isinstance(t, str) for t in tags):
raise HTTPException(status_code=400, detail="'tags' doit être une liste de chaînes")
image.ai_tags = tags
await db.commit()
return {"updated": True, "id": image_id, "tags": tags}
# ─────────────────────────────────────────────────────────────
# SUPPRESSION
# ─────────────────────────────────────────────────────────────