updated event and router stacks
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
class EventCluster:
|
||||
from typing import Optional, Type
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class EventCluster:
|
||||
"""
|
||||
EventCluster
|
||||
"""
|
||||
def __init__(self, endpoint_uu_id: str):
|
||||
self.endpoint_uu_id = endpoint_uu_id
|
||||
self.events = []
|
||||
@@ -48,20 +54,18 @@ class EventCluster:
|
||||
f"UUID: {event_to_save_database.uu_id} event is saved to {to_save_endpoint.uu_id}"
|
||||
)
|
||||
|
||||
def match_event(self, event_keys: list[str]) -> "Event":
|
||||
def match_event(self, event_key: str) -> "Event":
|
||||
"""
|
||||
Match an event by its key
|
||||
"""
|
||||
# print('set(event_keys)', set(event_keys))
|
||||
# print('event.keys', set([event.key for event in self.events]))
|
||||
intersection_of_key: set[str] = set(event_keys) & set(
|
||||
[event.key for event in self.events]
|
||||
)
|
||||
if not len(intersection_of_key) == 1:
|
||||
raise ValueError(
|
||||
f"Event key not found or multiple matches found: {intersection_of_key}"
|
||||
)
|
||||
return self.get_event(event_key=list(intersection_of_key)[0])
|
||||
# intersection_of_key: set[str] = set(event_key) & set([event.key for event in self.events])
|
||||
# if not len(intersection_of_key) == 1:
|
||||
# raise ValueError(
|
||||
# f"Event key not found or multiple matches found: {intersection_of_key}"
|
||||
# )
|
||||
return self.get_event(event_key=event_key)
|
||||
|
||||
|
||||
class Event:
|
||||
@@ -70,8 +74,8 @@ class Event:
|
||||
self,
|
||||
name: str,
|
||||
key: str,
|
||||
request_validator: str = None,
|
||||
response_validator: str = None,
|
||||
request_validator: Optional[Type[BaseModel]] = None,
|
||||
response_validator: Optional[Type[BaseModel]] = None,
|
||||
description: str = "",
|
||||
):
|
||||
self.name = name
|
||||
@@ -86,3 +90,25 @@ class Event:
|
||||
"""
|
||||
print(self.name)
|
||||
return {}
|
||||
|
||||
|
||||
class SetEventCluster:
|
||||
"""
|
||||
SetEventCluster
|
||||
"""
|
||||
list_of_event_clusters: list[EventCluster] = []
|
||||
|
||||
def add_event_cluster(self, event_cluster: EventCluster):
|
||||
"""
|
||||
Add an event cluster to the set
|
||||
"""
|
||||
endpoint_uu_id_list = [event_cluster_uuid.endpoint_uu_id for event_cluster_uuid in self.list_of_event_clusters]
|
||||
if event_cluster.endpoint_uu_id not in endpoint_uu_id_list:
|
||||
self.list_of_event_clusters.append(event_cluster)
|
||||
|
||||
@property
|
||||
def retrieve_all_event_clusters(self) -> list[EventCluster]:
|
||||
"""
|
||||
Retrieve all event clusters
|
||||
"""
|
||||
return self.list_of_event_clusters
|
||||
|
||||
Reference in New Issue
Block a user