Existing extra fields for entities are now cleared if a field is deleted

This commit is contained in:
Donkie
2024-01-06 20:08:39 +01:00
parent 86e126f775
commit 09b8705133
4 changed files with 36 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ from collections.abc import Sequence
from datetime import datetime
from typing import Optional, Union
import sqlalchemy
from sqlalchemy import func, select
from sqlalchemy.exc import IntegrityError
from sqlalchemy.ext.asyncio import AsyncSession
@@ -175,6 +176,13 @@ async def delete(db: AsyncSession, filament_id: int) -> None:
raise ItemDeleteError("Failed to delete filament.") from exc
async def clear_extra_field(db: AsyncSession, key: str) -> None:
"""Delete all extra fields with a specific key."""
await db.execute(
sqlalchemy.delete(models.FilamentField).where(models.FilamentField.key == key),
)
logger = logging.getLogger(__name__)