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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user