From 18ba809d5c33fa724356e414e1f78b4a96f26532 Mon Sep 17 00:00:00 2001 From: Michael Genson <71845777+michael-genson@users.noreply.github.com> Date: Sun, 27 Jul 2025 03:53:15 +0000 Subject: [PATCH] simplify data logic since this is only for webhooks --- .../event_bus_service/event_bus_listeners.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mealie/services/event_bus_service/event_bus_listeners.py b/mealie/services/event_bus_service/event_bus_listeners.py index 9d525f798..0d1a84154 100644 --- a/mealie/services/event_bus_service/event_bus_listeners.py +++ b/mealie/services/event_bus_service/event_bus_listeners.py @@ -3,7 +3,6 @@ import json from abc import ABC, abstractmethod from collections.abc import Generator from datetime import UTC, datetime -from typing import cast from urllib.parse import parse_qs, urlencode, urlsplit, urlunsplit from fastapi.encoders import jsonable_encoder @@ -148,21 +147,23 @@ class WebhookEventListener(EventListenerBase): def publish_to_subscribers(self, event: Event, subscribers: list[ReadWebhook]) -> None: with self.ensure_repos(self.group_id, self.household_id) as repos: - webhook_data = cast(EventWebhookData, event.document_data) + if not isinstance(event.document_data, EventWebhookData): + return + match event.document_data.document_type: case EventDocumentType.mealplan: meal_repo = repos.meals meal_data = meal_repo.get_meals_by_date_range( - webhook_data.webhook_start_dt, webhook_data.webhook_end_dt + event.document_data.webhook_start_dt, event.document_data.webhook_end_dt ) - webhook_data.webhook_body = meal_data or None + event.document_data.webhook_body = meal_data or None case _: if event.event_type is EventTypes.test_message: # make sure the webhook has a valid body so it gets sent - webhook_data.webhook_body = webhook_data.webhook_body or [] + event.document_data.webhook_body = event.document_data.webhook_body or [] # Only publish to subscribers if we have a webhook body to send - if webhook_data.webhook_body is not None: + if event.document_data.webhook_body is not None: self.publisher.publish(event, [webhook.url for webhook in subscribers]) def get_scheduled_webhooks(self, start_dt: datetime, end_dt: datetime) -> list[ReadWebhook]: