Skip to content

Commit dca4210

Browse files
authored
DEVEXP-1306: OAS Synchro - Conversation (#135)
1 parent 7a68c33 commit dca4210

4 files changed

Lines changed: 12 additions & 14 deletions

File tree

examples/getting-started/conversation/send_handle_incoming_sms/server_business_logic.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,9 @@ def _handle_message_inbound(event: MessageInboundEvent, logger, sinch_client):
3434
mo_text = _get_mo_text(event)
3535
logger.info("MO SMS from %s: %s", identity, mo_text)
3636

37-
app_id = event.app_id
38-
if not app_id:
39-
logger.warning("Event has no app_id; skipping MT reply.")
40-
return
41-
4237
reply_text = f"Your message said: {mo_text}"
4338
response = sinch_client.conversation.messages.send_text_message(
44-
app_id=app_id,
39+
app_id=event.app_id,
4540
text=reply_text,
4641
recipient_identities=[{"channel": "SMS", "identity": identity}],
4742
)

sinch/domains/conversation/models/v1/sinch_events/events/conversation_sinch_event_base.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,10 @@
99
class ConversationSinchEventBase(SinchEvent):
1010
"""Base fields present on every Conversation API Sinch Event payload."""
1111

12-
app_id: Optional[StrictStr] = Field(
13-
default=None,
12+
app_id: StrictStr = Field(
1413
description="Id of the subscribed app.",
1514
)
16-
project_id: Optional[StrictStr] = Field(
17-
default=None,
15+
project_id: StrictStr = Field(
1816
description="The project ID of the app which has subscribed for the callback.",
1917
)
2018
accepted_time: Optional[datetime] = Field(

tests/unit/domains/conversation/v1/models/sinch_events/events/test_conversation_sinch_event_model.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ def test_message_delivery_receipt_event_expects_parsed(message_delivery_report_d
4848
def test_message_inbound_event_expects_parsed():
4949
payload = {
5050
"app_id": "app1",
51+
"project_id": "proj1",
5152
"message": {
5253
"contact_id": "contact1",
5354
"contact_message": {"text_message": {"text": "Hello"}},
@@ -63,6 +64,7 @@ def test_message_inbound_event_expects_parsed():
6364
def test_message_submit_event_expects_parsed():
6465
payload = {
6566
"app_id": "app1",
67+
"project_id": "proj1",
6668
"message_submit_notification": {
6769
"contact_id": "contact1",
6870
"channel_identity": {"channel": "MESSENGER", "identity": "123"},
@@ -73,10 +75,10 @@ def test_message_submit_event_expects_parsed():
7375
assert event.message_submit_notification.contact_id == "contact1"
7476

7577

76-
def test_conversation_sinch_event_base_optional_fields():
77-
payload = {"app_id": "app1"}
78+
def test_conversation_sinch_event_base_optional_timestamp_and_metadata_fields():
79+
payload = {"app_id": "app1", "project_id": "proj1"}
7880
event = ConversationSinchEventBase(**payload)
7981
assert event.app_id == "app1"
80-
assert event.project_id is None
82+
assert event.project_id == "proj1"
8183
assert event.accepted_time is None
8284
assert event.event_time is None

tests/unit/domains/conversation/v1/sinch_events/test_conversation_sinch_event.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,10 @@ def test_parse_event_message_submit_expects_message_submit_event(conversation_si
117117

118118

119119
def test_parse_event_json_string_expects_parsed(conversation_sinch_event):
120-
payload_str = '{"app_id":"app1","message_delivery_report":{"status":"DELIVERED"}}'
120+
payload_str = (
121+
'{"app_id":"app1","project_id":"proj1",'
122+
'"message_delivery_report":{"status":"DELIVERED"}}'
123+
)
121124
event = conversation_sinch_event.parse_event(payload_str)
122125
assert isinstance(event, MessageDeliveryReceiptEvent)
123126
assert event.app_id == "app1"

0 commit comments

Comments
 (0)