fix: add reference check before deleting audio processing template

Prevent deleting templates that are still referenced by
ProcessedAudioSource entities. Returns 400 with source names.
This commit is contained in:
2026-04-01 23:28:48 +03:00
parent 992495e2e4
commit d04192ffb7
@@ -6,6 +6,7 @@ from wled_controller.api.auth import AuthRequired
from wled_controller.api.dependencies import (
fire_entity_event,
get_audio_processing_template_store,
get_audio_source_store,
get_processor_manager,
)
from wled_controller.api.schemas.audio_processing import (
@@ -158,6 +159,12 @@ async def delete_audio_processing_template(
):
"""Delete an audio processing template."""
try:
# Check for references from audio sources
audio_source_store = get_audio_source_store()
refs = audio_source_store.get_sources_referencing_template(template_id)
if refs:
names = ", ".join(r.name for r in refs)
raise ValueError(f"Template is in use by audio source(s): {names}")
store.delete_template(template_id)
fire_entity_event("audio_processing_template", "deleted", template_id)
# Hot-update: rebuild filter pipelines for running streams that used this template