From 95c81955c9fb52505ee690e4ca22c7c96600a8a6 Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Sat, 4 Apr 2026 11:23:48 +0200 Subject: [PATCH] fix: remove public assets before deleting branch --- apps/backend/fastapi/app/services/versions.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/apps/backend/fastapi/app/services/versions.py b/apps/backend/fastapi/app/services/versions.py index 36b3cce..e36e4ce 100644 --- a/apps/backend/fastapi/app/services/versions.py +++ b/apps/backend/fastapi/app/services/versions.py @@ -1,6 +1,6 @@ from __future__ import annotations -from sqlalchemy import select +from sqlalchemy import delete, select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import selectinload @@ -12,7 +12,7 @@ from dlib.cv import ( validate_patchset, ) -from app.models import CvDocument, CvPatch, CvVersion +from app.models import CvDocument, CvPatch, CvVersion, PublicAsset async def create_branch( @@ -100,10 +100,15 @@ async def delete_version( if not version.parent_version_id: return "root" # Refuse if child branches exist - child_stmt = select(CvVersion.id).where(CvVersion.parent_version_id == version_id).limit(1) + child_stmt = ( + select(CvVersion.id).where(CvVersion.parent_version_id == version_id).limit(1) + ) child_result = await session.execute(child_stmt) if child_result.scalar_one_or_none(): return "has_children" + await session.execute( + delete(PublicAsset).where(PublicAsset.version_id == version_id) + ) await session.delete(version) await session.commit() return True