Added resource field in websocket message

Used to differentiate resources for root-level subscriptions
This commit is contained in:
Donkie
2023-10-15 20:39:53 +02:00
parent 3e2bbed17e
commit 5f7a063125
4 changed files with 8 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
from datetime import datetime, timezone from datetime import datetime, timezone
from enum import Enum from enum import Enum
from typing import Optional from typing import Literal, Optional
from pydantic import BaseModel as PydanticBaseModel from pydantic import BaseModel as PydanticBaseModel
from pydantic import Field from pydantic import Field
@@ -243,6 +243,7 @@ class Event(BaseModel):
"""Event.""" """Event."""
type: EventType = Field(description="Event type.") type: EventType = Field(description="Event type.")
resource: str = Field(description="Resource type.")
date: datetime = Field(description="When the event occured. UTC Timezone.") date: datetime = Field(description="When the event occured. UTC Timezone.")
payload: BaseModel payload: BaseModel
@@ -251,15 +252,18 @@ class SpoolEvent(Event):
"""Event.""" """Event."""
payload: Spool = Field(description="Updated spool.") payload: Spool = Field(description="Updated spool.")
resource: Literal["spool"] = Field(description="Resource type.")
class FilamentEvent(Event): class FilamentEvent(Event):
"""Event.""" """Event."""
payload: Filament = Field(description="Updated filament.") payload: Filament = Field(description="Updated filament.")
resource: Literal["filament"] = Field(description="Resource type.")
class VendorEvent(Event): class VendorEvent(Event):
"""Event.""" """Event."""
payload: Vendor = Field(description="Updated vendor.") payload: Vendor = Field(description="Updated vendor.")
resource: Literal["vendor"] = Field(description="Resource type.")

View File

@@ -196,6 +196,7 @@ async def filament_changed(filament: models.Filament, typ: EventType) -> None:
("filament", str(filament.id)), ("filament", str(filament.id)),
FilamentEvent( FilamentEvent(
type=typ, type=typ,
resource="filament",
date=datetime.utcnow(), date=datetime.utcnow(),
payload=Filament.from_db(filament), payload=Filament.from_db(filament),
), ),

View File

@@ -312,6 +312,7 @@ async def spool_changed(spool: models.Spool, typ: EventType) -> None:
("spool", str(spool.id)), ("spool", str(spool.id)),
SpoolEvent( SpoolEvent(
type=typ, type=typ,
resource="spool",
date=datetime.utcnow(), date=datetime.utcnow(),
payload=Spool.from_db(spool), payload=Spool.from_db(spool),
), ),

View File

@@ -107,6 +107,7 @@ async def vendor_changed(vendor: models.Vendor, typ: EventType) -> None:
("vendor", str(vendor.id)), ("vendor", str(vendor.id)),
VendorEvent( VendorEvent(
type=typ, type=typ,
resource="vendor",
date=datetime.utcnow(), date=datetime.utcnow(),
payload=Vendor.from_db(vendor), payload=Vendor.from_db(vendor),
), ),