sse update

This commit is contained in:
Hlars 2025-05-11 07:56:00 +02:00
parent 62521be363
commit 7d933e647b

View File

@ -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<Unit>),
Vendors(Vec<Vendor>),
@ -49,19 +43,8 @@ pub enum DataHubData {
impl From<DataHubData> 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())
}
}