Added resource field in websocket message
Used to differentiate resources for root-level subscriptions
This commit is contained in:
@@ -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.")
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -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),
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user