From 7d933e647b2c272ab8330405a0393447bf243289 Mon Sep 17 00:00:00 2001 From: Hlars Date: Sun, 11 May 2025 07:56:00 +0200 Subject: [PATCH] sse update --- src/api/routes/data_hub/models.rs | 35 ++++++++----------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/src/api/routes/data_hub/models.rs b/src/api/routes/data_hub/models.rs index 717cbf6..9cb7ab4 100644 --- a/src/api/routes/data_hub/models.rs +++ b/src/api/routes/data_hub/models.rs @@ -6,22 +6,14 @@ use utoipa::ToSchema; use crate::api::routes::{units::models::Unit, vendors::models::Vendor}; -#[derive(Debug, Clone, Serialize, TS, ToSchema)] -#[ts(export)] +#[derive(Debug, Clone, Serialize, ToSchema)] pub struct DataHubStream { /// Unique identifier for the data update event id: String, - /// Event Type - event: EventType, + /// Event Type (always 'Message') + event: String, /// Data content - data: String, -} - -#[derive(Debug, Clone, Serialize, TS, ToSchema, strum::Display)] -#[ts(export)] -pub enum EventType { - Units, - Vendors, + data: DataHubData, } #[derive(Debug)] @@ -41,7 +33,9 @@ impl DataHub { } } -#[derive(Debug, Clone, Serialize)] +#[derive(Debug, Clone, Serialize, TS, ToSchema)] +#[ts(export)] +#[serde(tag = "type", content = "data")] pub enum DataHubData { Units(Vec), Vendors(Vec), @@ -49,19 +43,8 @@ pub enum DataHubData { impl From for sse::Event { fn from(value: DataHubData) -> Self { - let (event_type, data) = match value { - DataHubData::Units(units) => ( - EventType::Units, - serde_json::to_string(&units).unwrap_or_default(), - ), - DataHubData::Vendors(vendors) => ( - EventType::Vendors, - serde_json::to_string(&vendors).unwrap_or_default(), - ), - }; - sse::Event::default() - .event(event_type.to_string()) - .data(data) + // .event(event_type.to_string()) + .data(serde_json::to_string(&value).unwrap_or_default()) } }