Skip to content

Commit 179b6f5

Browse files
committed
refactor: update msg object
1 parent 9f0dd16 commit 179b6f5

2 files changed

Lines changed: 19 additions & 25 deletions

File tree

raven/omni_channel_chat/models/messages.py

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,43 +7,36 @@ class StdMessage(ABC):
77
user_id: str
88
metadata: dict
99

10+
@property
1011
@abstractmethod
11-
def to_raven(self) -> dict:
12+
def type(self) -> str:
1213
pass
1314

1415

1516
@dataclass
1617
class TextMessage(StdMessage):
1718
text: str
1819

19-
def to_raven(self):
20-
return {
21-
"type": "Text",
22-
"text": self.text,
23-
}
20+
@property
21+
def type(self) -> str:
22+
return "Text"
2423

2524

2625
@dataclass
2726
class FileMessage(StdMessage):
2827
file_name: str
2928
file_content: bytes
3029

31-
def to_raven(self):
32-
return {
33-
"type": "File",
34-
"file_name": self.file_name,
35-
"file_content": self.file_content,
36-
}
30+
@property
31+
def type(self) -> str:
32+
return "File"
3733

3834

3935
@dataclass
4036
class ImageMessage(StdMessage):
4137
file_name: str
4238
file_content: bytes
4339

44-
def to_raven(self):
45-
return {
46-
"type": "Image",
47-
"file_name": self.file_name,
48-
"file_content": self.file_content,
49-
}
40+
@property
41+
def type(self) -> str:
42+
return "Image"

raven/omni_channel_chat/omni_channel_raven_connector.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -171,25 +171,26 @@ def receive_from_provider(self, message: StdMessage) -> "RavenChannel":
171171
return raven_channel
172172

173173
def _save_inbound_message(self, *, raven_channel: "RavenChannel", message: StdMessage) -> None:
174-
msg = message.to_raven()
174+
from raven.omni_channel_chat.models.messages import FileMessage, ImageMessage, TextMessage
175+
175176
doc = frappe.new_doc(doctype="Raven Message")
176177
doc.update(
177178
{
178179
"channel_id": raven_channel.name,
179-
"message_type": msg["type"],
180+
"message_type": message.type,
180181
"is_customer_message": True,
181182
"owner": raven_channel.customer_user,
182183
"omni_channel_msg_meta": message.metadata,
183184
}
184185
)
185-
if msg["type"] == "Text":
186-
doc.text = msg["text"]
187-
elif msg["type"] in ("Image", "File"):
186+
if isinstance(message, TextMessage):
187+
doc.text = message.text
188+
elif isinstance(message, (ImageMessage, FileMessage)):
188189
file_doc = frappe.get_doc(
189190
{
190191
"doctype": "File",
191-
"file_name": msg["file_name"],
192-
"content": msg["file_content"],
192+
"file_name": message.file_name,
193+
"content": message.file_content,
193194
"is_private": 0,
194195
}
195196
)

0 commit comments

Comments
 (0)