h-message-bus 0.0.40__py3-none-any.whl → 0.0.41__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- h_message_bus/infrastructure/nats_client_repository.py +2 -2
- h_message_bus/infrastructure/nats_config.py +1 -1
- {h_message_bus-0.0.40.dist-info → h_message_bus-0.0.41.dist-info}/METADATA +106 -85
- h_message_bus-0.0.41.dist-info/RECORD +20 -0
- {h_message_bus-0.0.40.dist-info → h_message_bus-0.0.41.dist-info}/WHEEL +1 -1
- h_message_bus/domain/event_messages/__init__.py +0 -0
- h_message_bus/domain/models/event_message_topic.py +0 -20
- h_message_bus/domain/models/request_message_topic.py +0 -100
- h_message_bus/domain/models/twitter_message_metadata.py +0 -31
- h_message_bus/domain/models/twitter_user_metadata.py +0 -76
- h_message_bus/domain/models/vector_collection_metadata.py +0 -30
- h_message_bus/domain/models/vector_query_answer.py +0 -22
- h_message_bus/domain/request_messages/__init__.py +0 -0
- h_message_bus/domain/request_messages/graph_clear_request_message.py +0 -26
- h_message_bus/domain/request_messages/graph_get_all_request_message.py +0 -27
- h_message_bus/domain/request_messages/graph_get_all_result_response_message.py +0 -45
- h_message_bus/domain/request_messages/graph_node_add_request_message.py +0 -64
- h_message_bus/domain/request_messages/graph_node_added_response_message.py +0 -69
- h_message_bus/domain/request_messages/graph_node_get_request_message.py +0 -39
- h_message_bus/domain/request_messages/graph_node_get_result_response_message.py +0 -70
- h_message_bus/domain/request_messages/graph_node_update_request_message.py +0 -56
- h_message_bus/domain/request_messages/graph_node_update_response_message.py +0 -69
- h_message_bus/domain/request_messages/graph_nodes_by_property_request_message.py +0 -45
- h_message_bus/domain/request_messages/graph_nodes_by_property_response_message.py +0 -80
- h_message_bus/domain/request_messages/graph_query_operation_request_message.py +0 -114
- h_message_bus/domain/request_messages/graph_query_operation_response_message.py +0 -85
- h_message_bus/domain/request_messages/graph_query_request_message.py +0 -48
- h_message_bus/domain/request_messages/graph_relationship_added_request_message.py +0 -63
- h_message_bus/domain/request_messages/init_knowledgebase_request.py +0 -26
- h_message_bus/domain/request_messages/tg_message_request_message.py +0 -48
- h_message_bus/domain/request_messages/tg_user_message_reply_request_message.py +0 -56
- h_message_bus/domain/request_messages/tg_user_message_request_message.py +0 -93
- h_message_bus/domain/request_messages/twitter_follow_user_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_follow_user_response_message.py +0 -43
- h_message_bus/domain/request_messages/twitter_get_tweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_get_tweet_response_message.py +0 -54
- h_message_bus/domain/request_messages/twitter_get_user_request_message.py +0 -35
- h_message_bus/domain/request_messages/twitter_get_user_response_message.py +0 -96
- h_message_bus/domain/request_messages/twitter_get_users_request_message.py +0 -42
- h_message_bus/domain/request_messages/twitter_get_users_response_message.py +0 -44
- h_message_bus/domain/request_messages/twitter_home_timeline_request_message.py +0 -56
- h_message_bus/domain/request_messages/twitter_home_timeline_response_message.py +0 -74
- h_message_bus/domain/request_messages/twitter_post_tweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_post_tweet_response_message.py +0 -47
- h_message_bus/domain/request_messages/twitter_quote_retweet_request_message.py +0 -48
- h_message_bus/domain/request_messages/twitter_quote_retweet_response_message.py +0 -55
- h_message_bus/domain/request_messages/twitter_reply_request_message.py +0 -48
- h_message_bus/domain/request_messages/twitter_reply_response_message.py +0 -54
- h_message_bus/domain/request_messages/twitter_retweet_request_message.py +0 -40
- h_message_bus/domain/request_messages/twitter_retweet_response_message.py +0 -43
- h_message_bus/domain/request_messages/twitter_search_request_message.py +0 -73
- h_message_bus/domain/request_messages/twitter_search_response_message.py +0 -73
- h_message_bus/domain/request_messages/twitter_user_tweets_request_message.py +0 -63
- h_message_bus/domain/request_messages/twitter_user_tweets_response_message.py +0 -89
- h_message_bus/domain/request_messages/vector_query_collection_request_message.py +0 -51
- h_message_bus/domain/request_messages/vector_query_collection_response_message.py +0 -47
- h_message_bus/domain/request_messages/vector_read_metadata_request_message.py +0 -25
- h_message_bus/domain/request_messages/vector_read_metadata_response_message.py +0 -45
- h_message_bus/domain/request_messages/vector_save_request_message.py +0 -66
- h_message_bus/domain/request_messages/web_get_docs_request_message.py +0 -46
- h_message_bus/domain/request_messages/web_search_request_message.py +0 -32
- h_message_bus-0.0.40.dist-info/RECORD +0 -76
- {h_message_bus-0.0.40.dist-info → h_message_bus-0.0.41.dist-info}/top_level.txt +0 -0
@@ -1,26 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphClearRequestMessage(HaiMessage):
|
9
|
-
"""Message to clear all nodes and relationships from the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls) -> 'GraphClearRequestMessage':
|
18
|
-
"""Create a message requesting to clear the graph"""
|
19
|
-
return cls.create(
|
20
|
-
topic=RequestMessageTopic.GRAPH_CLEAR,
|
21
|
-
payload={}
|
22
|
-
)
|
23
|
-
|
24
|
-
@classmethod
|
25
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphClearRequestMessage':
|
26
|
-
return cls.create_message()
|
@@ -1,27 +0,0 @@
|
|
1
|
-
|
2
|
-
from typing import TypeVar, Dict, Any, Type, List
|
3
|
-
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
from ...domain.models.hai_message import HaiMessage
|
6
|
-
|
7
|
-
T = TypeVar('T', bound='HaiMessage')
|
8
|
-
|
9
|
-
class GraphGetAllRequestMessage(HaiMessage):
|
10
|
-
"""Message to get all nodes and relationships from the graph"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls) -> 'GraphGetAllRequestMessage':
|
19
|
-
"""Create a message requesting to get all nodes and relationships"""
|
20
|
-
return cls.create(
|
21
|
-
topic=RequestMessageTopic.GRAPH_GET_ALL,
|
22
|
-
payload={}
|
23
|
-
)
|
24
|
-
|
25
|
-
@classmethod
|
26
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphGetAllRequestMessage':
|
27
|
-
return cls.create_message()
|
@@ -1,45 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, List
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphGetAllResultResponseMessage(HaiMessage):
|
9
|
-
"""Message containing all nodes and relationships from the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, nodes: List[Dict], relationships: List[Dict]) -> 'GraphGetAllResultResponseMessage':
|
18
|
-
"""Create a message with all nodes and relationships"""
|
19
|
-
return cls.create(
|
20
|
-
topic=RequestMessageTopic.GRAPH_GET_ALL_RESPONSE,
|
21
|
-
payload={
|
22
|
-
"nodes": nodes,
|
23
|
-
"relationships": relationships
|
24
|
-
},
|
25
|
-
)
|
26
|
-
|
27
|
-
@property
|
28
|
-
def nodes(self) -> List[Dict]:
|
29
|
-
"""Get the list of nodes from the payload"""
|
30
|
-
return self.payload.get("nodes", [])
|
31
|
-
|
32
|
-
@property
|
33
|
-
def relationships(self) -> List[Dict]:
|
34
|
-
"""Get the list of relationships from the payload"""
|
35
|
-
return self.payload.get("relationships", [])
|
36
|
-
|
37
|
-
@classmethod
|
38
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphGetAllResultResponseMessage':
|
39
|
-
# Extract the necessary fields from the message payload
|
40
|
-
payload = message.payload
|
41
|
-
|
42
|
-
return cls.create_message(
|
43
|
-
nodes=payload.get("nodes", []),
|
44
|
-
relationships=payload.get("relationships", [])
|
45
|
-
)
|
@@ -1,64 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
|
9
|
-
class GraphNodeAddRequestMessage(HaiMessage):
|
10
|
-
"""Message to add a node to the graph"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls, node_id: str, label: str, properties: dict = None,
|
19
|
-
description: str = None) -> 'GraphNodeAddRequestMessage':
|
20
|
-
"""Create a message requesting to add a node to the graph"""
|
21
|
-
if properties is None:
|
22
|
-
properties = {}
|
23
|
-
|
24
|
-
return cls.create(
|
25
|
-
topic=RequestMessageTopic.GRAPH_NODE_ADD,
|
26
|
-
payload={
|
27
|
-
"node_id": node_id,
|
28
|
-
"label": label,
|
29
|
-
"properties": properties,
|
30
|
-
"description": description
|
31
|
-
},
|
32
|
-
)
|
33
|
-
|
34
|
-
@property
|
35
|
-
def node_id(self) -> str:
|
36
|
-
"""Get the node ID from the payload"""
|
37
|
-
return self.payload.get("node_id")
|
38
|
-
|
39
|
-
@property
|
40
|
-
def label(self) -> str:
|
41
|
-
"""Get the label from the payload"""
|
42
|
-
return self.payload.get("label")
|
43
|
-
|
44
|
-
@property
|
45
|
-
def properties(self) -> dict:
|
46
|
-
"""Get the properties from the payload"""
|
47
|
-
return self.payload.get("properties", {})
|
48
|
-
|
49
|
-
@property
|
50
|
-
def description(self) -> Optional[str]:
|
51
|
-
"""Get the description from the payload"""
|
52
|
-
return self.payload.get("description")
|
53
|
-
|
54
|
-
@classmethod
|
55
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeAddRequestMessage':
|
56
|
-
# Extract the necessary fields from the message payload
|
57
|
-
payload = message.payload
|
58
|
-
|
59
|
-
return cls.create_message(
|
60
|
-
node_id=payload.get("node_id", ''),
|
61
|
-
label=payload.get("label", ''),
|
62
|
-
properties=payload.get("properties", {}),
|
63
|
-
description=payload.get("description")
|
64
|
-
)
|
@@ -1,69 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodeAddedResponseMessage(HaiMessage):
|
9
|
-
"""Message indicating a node was successfully added to the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, node_id: str, label: str, properties: dict = None,
|
18
|
-
description: str = None) -> 'GraphNodeAddedResponseMessage':
|
19
|
-
"""Create a message confirming a node was added"""
|
20
|
-
if properties is None:
|
21
|
-
properties = {}
|
22
|
-
|
23
|
-
return cls.create(
|
24
|
-
topic=RequestMessageTopic.GRAPH_NODE_ADD_RESPONSE,
|
25
|
-
payload={
|
26
|
-
"node_id": node_id,
|
27
|
-
"label": label,
|
28
|
-
"properties": properties,
|
29
|
-
"description": description,
|
30
|
-
"success": True
|
31
|
-
},
|
32
|
-
)
|
33
|
-
|
34
|
-
@property
|
35
|
-
def node_id(self) -> str:
|
36
|
-
"""Get the node ID from the payload"""
|
37
|
-
return self.payload.get("node_id")
|
38
|
-
|
39
|
-
@property
|
40
|
-
def label(self) -> str:
|
41
|
-
"""Get the label from the payload"""
|
42
|
-
return self.payload.get("label")
|
43
|
-
|
44
|
-
@property
|
45
|
-
def properties(self) -> dict:
|
46
|
-
"""Get the properties from the payload"""
|
47
|
-
return self.payload.get("properties", {})
|
48
|
-
|
49
|
-
@property
|
50
|
-
def description(self) -> Optional[str]:
|
51
|
-
"""Get the description from the payload"""
|
52
|
-
return self.payload.get("description")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def success(self) -> bool:
|
56
|
-
"""Check if the operation was successful"""
|
57
|
-
return self.payload.get("success", False)
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeAddedResponseMessage':
|
61
|
-
# Extract the necessary fields from the message payload
|
62
|
-
payload = message.payload
|
63
|
-
|
64
|
-
return cls.create_message(
|
65
|
-
node_id=payload.get("node_id", ''),
|
66
|
-
label=payload.get("label", ''),
|
67
|
-
properties=payload.get("properties", {}),
|
68
|
-
description=payload.get("description")
|
69
|
-
)
|
@@ -1,39 +0,0 @@
|
|
1
|
-
|
2
|
-
from typing import TypeVar, Dict, Any, Type
|
3
|
-
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
from ...domain.models.hai_message import HaiMessage
|
6
|
-
|
7
|
-
T = TypeVar('T', bound='HaiMessage')
|
8
|
-
|
9
|
-
class GraphNodeGetRequestMessage(HaiMessage):
|
10
|
-
"""Message to get a node from the graph by ID"""
|
11
|
-
|
12
|
-
@classmethod
|
13
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
14
|
-
"""Create a message - inherited from HaiMessage"""
|
15
|
-
return super().create(topic=topic, payload=payload)
|
16
|
-
|
17
|
-
@classmethod
|
18
|
-
def create_message(cls, node_id: str) -> 'GraphNodeGetRequestMessage':
|
19
|
-
"""Create a message requesting to get a node from the graph"""
|
20
|
-
return cls.create(
|
21
|
-
topic=RequestMessageTopic.GRAPH_NODE_GET,
|
22
|
-
payload={
|
23
|
-
"node_id": node_id
|
24
|
-
},
|
25
|
-
)
|
26
|
-
|
27
|
-
@property
|
28
|
-
def node_id(self) -> str:
|
29
|
-
"""Get the node ID from the payload"""
|
30
|
-
return self.payload.get("node_id")
|
31
|
-
|
32
|
-
@classmethod
|
33
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeGetRequestMessage':
|
34
|
-
# Extract the necessary fields from the message payload
|
35
|
-
payload = message.payload
|
36
|
-
|
37
|
-
return cls.create_message(
|
38
|
-
node_id=payload.get("node_id", '')
|
39
|
-
)
|
@@ -1,70 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodeGetResultResponseMessage(HaiMessage):
|
9
|
-
"""Message containing a requested node from the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, node_id: str, label: str, properties: dict = None,
|
18
|
-
description: str = None, found: bool = True) -> 'GraphNodeGetResultResponseMessage':
|
19
|
-
"""Create a message with the requested node information"""
|
20
|
-
if properties is None:
|
21
|
-
properties = {}
|
22
|
-
|
23
|
-
return cls.create(
|
24
|
-
topic=RequestMessageTopic.GRAPH_NODE_GET_RESPONSE,
|
25
|
-
payload={
|
26
|
-
"node_id": node_id,
|
27
|
-
"label": label,
|
28
|
-
"properties": properties,
|
29
|
-
"description": description,
|
30
|
-
"found": found
|
31
|
-
},
|
32
|
-
)
|
33
|
-
|
34
|
-
@property
|
35
|
-
def node_id(self) -> str:
|
36
|
-
"""Get the node ID from the payload"""
|
37
|
-
return self.payload.get("node_id")
|
38
|
-
|
39
|
-
@property
|
40
|
-
def label(self) -> str:
|
41
|
-
"""Get the label from the payload"""
|
42
|
-
return self.payload.get("label")
|
43
|
-
|
44
|
-
@property
|
45
|
-
def properties(self) -> dict:
|
46
|
-
"""Get the properties from the payload"""
|
47
|
-
return self.payload.get("properties", {})
|
48
|
-
|
49
|
-
@property
|
50
|
-
def description(self) -> Optional[str]:
|
51
|
-
"""Get the description from the payload"""
|
52
|
-
return self.payload.get("description")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def found(self) -> bool:
|
56
|
-
"""Check if the node was found"""
|
57
|
-
return self.payload.get("found", False)
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeGetResultResponseMessage':
|
61
|
-
# Extract the necessary fields from the message payload
|
62
|
-
payload = message.payload
|
63
|
-
|
64
|
-
return cls.create_message(
|
65
|
-
node_id=payload.get("node_id", ''),
|
66
|
-
label=payload.get("label", ''),
|
67
|
-
properties=payload.get("properties", {}),
|
68
|
-
description=payload.get("description"),
|
69
|
-
found=payload.get("found", False)
|
70
|
-
)
|
@@ -1,56 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodeUpdateRequestMessage(HaiMessage):
|
9
|
-
"""Message to update an existing node in the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, node_id: str, properties: dict = None,
|
18
|
-
description: str = None) -> 'GraphNodeUpdateRequestMessage':
|
19
|
-
"""Create a message requesting to update a node in the graph"""
|
20
|
-
if properties is None:
|
21
|
-
properties = {}
|
22
|
-
|
23
|
-
return cls.create(
|
24
|
-
topic=RequestMessageTopic.GRAPH_NODE_UPDATE,
|
25
|
-
payload={
|
26
|
-
"node_id": node_id,
|
27
|
-
"properties": properties,
|
28
|
-
"description": description
|
29
|
-
},
|
30
|
-
)
|
31
|
-
|
32
|
-
@property
|
33
|
-
def node_id(self) -> str:
|
34
|
-
"""Get the node ID from the payload"""
|
35
|
-
return self.payload.get("node_id")
|
36
|
-
|
37
|
-
@property
|
38
|
-
def properties(self) -> dict:
|
39
|
-
"""Get the properties from the payload"""
|
40
|
-
return self.payload.get("properties", {})
|
41
|
-
|
42
|
-
@property
|
43
|
-
def description(self) -> Optional[str]:
|
44
|
-
"""Get the description from the payload"""
|
45
|
-
return self.payload.get("description")
|
46
|
-
|
47
|
-
@classmethod
|
48
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeUpdateRequestMessage':
|
49
|
-
# Extract the necessary fields from the message payload
|
50
|
-
payload = message.payload
|
51
|
-
|
52
|
-
return cls.create_message(
|
53
|
-
node_id=payload.get("node_id", ''),
|
54
|
-
properties=payload.get("properties", {}),
|
55
|
-
description=payload.get("description")
|
56
|
-
)
|
@@ -1,69 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, Optional
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodeUpdateResponseMessage(HaiMessage):
|
9
|
-
"""Message indicating a node was successfully added to the graph"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, node_id: str, label: str, properties: dict = None,
|
18
|
-
description: str = None, success: bool = True) -> 'GraphNodeUpdateResponseMessage':
|
19
|
-
"""Create a message confirming a node was added"""
|
20
|
-
if properties is None:
|
21
|
-
properties = {}
|
22
|
-
|
23
|
-
return cls.create(
|
24
|
-
topic=RequestMessageTopic.GRAPH_NODE_UPDATE_RESPONSE,
|
25
|
-
payload={
|
26
|
-
"node_id": node_id,
|
27
|
-
"label": label,
|
28
|
-
"properties": properties,
|
29
|
-
"description": description,
|
30
|
-
"success": success
|
31
|
-
},
|
32
|
-
)
|
33
|
-
|
34
|
-
@property
|
35
|
-
def node_id(self) -> str:
|
36
|
-
"""Get the node ID from the payload"""
|
37
|
-
return self.payload.get("node_id")
|
38
|
-
|
39
|
-
@property
|
40
|
-
def label(self) -> str:
|
41
|
-
"""Get the label from the payload"""
|
42
|
-
return self.payload.get("label")
|
43
|
-
|
44
|
-
@property
|
45
|
-
def properties(self) -> dict:
|
46
|
-
"""Get the properties from the payload"""
|
47
|
-
return self.payload.get("properties", {})
|
48
|
-
|
49
|
-
@property
|
50
|
-
def description(self) -> Optional[str]:
|
51
|
-
"""Get the description from the payload"""
|
52
|
-
return self.payload.get("description")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def success(self) -> bool:
|
56
|
-
"""Check if the operation was successful"""
|
57
|
-
return self.payload.get("success", False)
|
58
|
-
|
59
|
-
@classmethod
|
60
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodeUpdateResponseMessage':
|
61
|
-
# Extract the necessary fields from the message payload
|
62
|
-
payload = message.payload
|
63
|
-
|
64
|
-
return cls.create_message(
|
65
|
-
node_id=payload.get("node_id", ''),
|
66
|
-
label=payload.get("label", ''),
|
67
|
-
properties=payload.get("properties", {}),
|
68
|
-
description=payload.get("description")
|
69
|
-
)
|
@@ -1,45 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type
|
2
|
-
|
3
|
-
from ..models.request_message_topic import RequestMessageTopic
|
4
|
-
from ...domain.models.hai_message import HaiMessage
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodesByPropertyRequestMessage(HaiMessage):
|
9
|
-
"""Message to get nodes with a specific property value and their relationships"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, property_name: str, property_value: any) -> 'GraphNodesByPropertyRequestMessage':
|
18
|
-
"""Create a message requesting nodes with a specific property value"""
|
19
|
-
return cls.create(
|
20
|
-
topic=RequestMessageTopic.GRAPH_NODES_BY_PROPERTY,
|
21
|
-
payload={
|
22
|
-
"property_name": property_name,
|
23
|
-
"property_value": property_value
|
24
|
-
},
|
25
|
-
)
|
26
|
-
|
27
|
-
@property
|
28
|
-
def property_name(self) -> str:
|
29
|
-
"""Get the property name from the payload"""
|
30
|
-
return self.payload.get("property_name")
|
31
|
-
|
32
|
-
@property
|
33
|
-
def property_value(self) -> any:
|
34
|
-
"""Get the property value from the payload"""
|
35
|
-
return self.payload.get("property_value")
|
36
|
-
|
37
|
-
@classmethod
|
38
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodesByPropertyRequestMessage':
|
39
|
-
# Extract the necessary fields from the message payload
|
40
|
-
payload = message.payload
|
41
|
-
|
42
|
-
return cls.create_message(
|
43
|
-
property_name=payload.get("property_name", ''),
|
44
|
-
property_value=payload.get("property_value")
|
45
|
-
)
|
@@ -1,80 +0,0 @@
|
|
1
|
-
from typing import TypeVar, Dict, Any, Type, List
|
2
|
-
|
3
|
-
from ...domain.models.hai_message import HaiMessage
|
4
|
-
from ..models.request_message_topic import RequestMessageTopic
|
5
|
-
|
6
|
-
T = TypeVar('T', bound='HaiMessage')
|
7
|
-
|
8
|
-
class GraphNodesByPropertyResponseMessage(HaiMessage):
|
9
|
-
"""Response message containing nodes with a specific property value and their relationships"""
|
10
|
-
|
11
|
-
@classmethod
|
12
|
-
def create(cls: Type[T], topic: str, payload: Dict[Any, Any]) -> T:
|
13
|
-
"""Create a message - inherited from HaiMessage"""
|
14
|
-
return super().create(topic=topic, payload=payload)
|
15
|
-
|
16
|
-
@classmethod
|
17
|
-
def create_message(cls, property_name: str, property_value: any,
|
18
|
-
nodes: List[Dict], relationships: List[Dict],
|
19
|
-
success: bool = True) -> 'GraphNodesByPropertyResponseMessage':
|
20
|
-
"""
|
21
|
-
Create a response message with nodes having a specific property value and their relationships
|
22
|
-
|
23
|
-
Args:
|
24
|
-
property_name: The property name that was queried
|
25
|
-
property_value: The property value that was queried
|
26
|
-
nodes: List of node dictionaries
|
27
|
-
relationships: List of relationship dictionaries
|
28
|
-
success: Whether the operation was successful
|
29
|
-
|
30
|
-
Returns:
|
31
|
-
A response message with the query results
|
32
|
-
"""
|
33
|
-
return cls.create(
|
34
|
-
topic=RequestMessageTopic.GRAPH_NODES_BY_PROPERTY_RESPONSE,
|
35
|
-
payload={
|
36
|
-
"property_name": property_name,
|
37
|
-
"property_value": property_value,
|
38
|
-
"nodes": nodes,
|
39
|
-
"relationships": relationships,
|
40
|
-
"success": success
|
41
|
-
},
|
42
|
-
)
|
43
|
-
|
44
|
-
@property
|
45
|
-
def property_name(self) -> str:
|
46
|
-
"""Get the property name from the payload"""
|
47
|
-
return self.payload.get("property_name")
|
48
|
-
|
49
|
-
@property
|
50
|
-
def property_value(self) -> any:
|
51
|
-
"""Get the property value from the payload"""
|
52
|
-
return self.payload.get("property_value")
|
53
|
-
|
54
|
-
@property
|
55
|
-
def nodes(self) -> List[Dict]:
|
56
|
-
"""Get the list of nodes from the payload"""
|
57
|
-
return self.payload.get("nodes", [])
|
58
|
-
|
59
|
-
@property
|
60
|
-
def relationships(self) -> List[Dict]:
|
61
|
-
"""Get the list of relationships from the payload"""
|
62
|
-
return self.payload.get("relationships", [])
|
63
|
-
|
64
|
-
@property
|
65
|
-
def success(self) -> bool:
|
66
|
-
"""Check if the query was successful"""
|
67
|
-
return self.payload.get("success", False)
|
68
|
-
|
69
|
-
@classmethod
|
70
|
-
def from_hai_message(cls, message: HaiMessage) -> 'GraphNodesByPropertyResponseMessage':
|
71
|
-
# Extract the necessary fields from the message payload
|
72
|
-
payload = message.payload
|
73
|
-
|
74
|
-
return cls.create_message(
|
75
|
-
property_name=payload.get("property_name", ''),
|
76
|
-
property_value=payload.get("property_value"),
|
77
|
-
nodes=payload.get("nodes", []),
|
78
|
-
relationships=payload.get("relationships", []),
|
79
|
-
success=payload.get("success", False)
|
80
|
-
)
|