From 5f7a063125e66f4baf0566073000ff10a4a8eee5 Mon Sep 17 00:00:00 2001 From: Donkie Date: Sun, 15 Oct 2023 20:39:53 +0200 Subject: [PATCH] Added resource field in websocket message Used to differentiate resources for root-level subscriptions --- spoolman/api/v1/models.py | 6 +++++- spoolman/database/filament.py | 1 + spoolman/database/spool.py | 1 + spoolman/database/vendor.py | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spoolman/api/v1/models.py b/spoolman/api/v1/models.py index b0ccaf1..b0ace20 100644 --- a/spoolman/api/v1/models.py +++ b/spoolman/api/v1/models.py @@ -2,7 +2,7 @@ from datetime import datetime, timezone from enum import Enum -from typing import Optional +from typing import Literal, Optional from pydantic import BaseModel as PydanticBaseModel from pydantic import Field @@ -243,6 +243,7 @@ class Event(BaseModel): """Event.""" type: EventType = Field(description="Event type.") + resource: str = Field(description="Resource type.") date: datetime = Field(description="When the event occured. UTC Timezone.") payload: BaseModel @@ -251,15 +252,18 @@ class SpoolEvent(Event): """Event.""" payload: Spool = Field(description="Updated spool.") + resource: Literal["spool"] = Field(description="Resource type.") class FilamentEvent(Event): """Event.""" payload: Filament = Field(description="Updated filament.") + resource: Literal["filament"] = Field(description="Resource type.") class VendorEvent(Event): """Event.""" payload: Vendor = Field(description="Updated vendor.") + resource: Literal["vendor"] = Field(description="Resource type.") diff --git a/spoolman/database/filament.py b/spoolman/database/filament.py index d3ab810..132471c 100644 --- a/spoolman/database/filament.py +++ b/spoolman/database/filament.py @@ -196,6 +196,7 @@ async def filament_changed(filament: models.Filament, typ: EventType) -> None: ("filament", str(filament.id)), FilamentEvent( type=typ, + resource="filament", date=datetime.utcnow(), payload=Filament.from_db(filament), ), diff --git a/spoolman/database/spool.py b/spoolman/database/spool.py index 92c5914..98336b7 100644 --- a/spoolman/database/spool.py +++ b/spoolman/database/spool.py @@ -312,6 +312,7 @@ async def spool_changed(spool: models.Spool, typ: EventType) -> None: ("spool", str(spool.id)), SpoolEvent( type=typ, + resource="spool", date=datetime.utcnow(), payload=Spool.from_db(spool), ), diff --git a/spoolman/database/vendor.py b/spoolman/database/vendor.py index b420190..db7be09 100644 --- a/spoolman/database/vendor.py +++ b/spoolman/database/vendor.py @@ -107,6 +107,7 @@ async def vendor_changed(vendor: models.Vendor, typ: EventType) -> None: ("vendor", str(vendor.id)), VendorEvent( type=typ, + resource="vendor", date=datetime.utcnow(), payload=Vendor.from_db(vendor), ),