Skip to content

Commit 4df88eb

Browse files
Adding a fix for forwarded messages (#502)
1 parent d3b4d8a commit 4df88eb

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

app/modules/incident/incident.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -454,6 +454,16 @@ def handle_reaction_added(client, ack, body, logger):
454454
logger.error("No incident document found for this channel.")
455455

456456
for message in messages:
457+
# get the forwarded message and get the attachments appeending the forwarded message to the original message
458+
if message.get("attachments"):
459+
attachments = message["attachments"]
460+
for attachment in attachments:
461+
fallback = attachment.get("fallback")
462+
if fallback:
463+
message["text"] += (
464+
"\nForwarded Message :" + attachment["fallback"]
465+
)
466+
457467
# get the message ts time
458468
message_ts = message["ts"]
459469

@@ -521,6 +531,16 @@ def handle_reaction_removed(client, ack, body, logger):
521531
# get the message we want to delete
522532
message = messages[0]
523533

534+
# get the forwarded message and get the attachments appeending the forwarded message to the original message
535+
if message.get("attachments"):
536+
attachments = message["attachments"]
537+
for attachment in attachments:
538+
fallback = attachment.get("fallback")
539+
if fallback:
540+
message["text"] += (
541+
"Forwarded Message :" + attachment["fallback"]
542+
)
543+
524544
# get the message ts time
525545
message_ts = message["ts"]
526546

app/tests/modules/incident/test_incident.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1139,6 +1139,38 @@ def test_handle_reaction_added_returns_link():
11391139
mock_client.chat_getPermalink.assert_called_once()
11401140

11411141

1142+
def test_handle_reaction_added_forwarded_message():
1143+
logger = MagicMock()
1144+
mock_client = MagicMock()
1145+
mock_client.conversations_info.return_value = {"channel": {"name": "incident-123"}}
1146+
mock_client.conversations_history.return_value = {
1147+
"ok": True,
1148+
"messages": [
1149+
{
1150+
"type": "message",
1151+
"attachments": [{"fallback": "This is a forwarded message"}],
1152+
"text": "Original message text",
1153+
"ts": "1617556890.000100",
1154+
"user": "U1234567890",
1155+
"files": [{"url_private": "https://example.com/image.png"}],
1156+
}
1157+
],
1158+
}
1159+
body = {
1160+
"event": {
1161+
"reaction": "floppy_disk",
1162+
"item": {"channel": "C123456", "ts": "123456"},
1163+
}
1164+
}
1165+
1166+
incident.handle_reaction_added(mock_client, lambda: None, body, logger)
1167+
1168+
# Make assertion that the function calls the correct functions
1169+
mock_client.conversations_history.assert_called_once()
1170+
mock_client.bookmarks_list.assert_called_once()
1171+
mock_client.users_profile_get.assert_called_once()
1172+
1173+
11421174
def test_handle_reaction_removed_successful_message_removal():
11431175
# Mock the client and logger
11441176
logger = MagicMock()
@@ -1271,6 +1303,28 @@ def test_handle_reaction_removed_empty_message_list_handling():
12711303
)
12721304

12731305

1306+
def test_handle_reaction_removed_forwarded_message():
1307+
logger = MagicMock()
1308+
mock_client = MagicMock()
1309+
mock_client.conversations_history.return_value = {
1310+
"attachments": [{"fallback": "This is a forwarded message"}],
1311+
"text": "Original message text",
1312+
"ts": "1617556890.000100",
1313+
"user": "U1234567890",
1314+
"files": [{"url_private": "https://example.com/image.png"}],
1315+
}
1316+
body = {
1317+
"event": {
1318+
"reaction": "floppy_disk",
1319+
"item": {"channel": "C123456", "ts": "123456"},
1320+
}
1321+
}
1322+
assert (
1323+
incident.handle_reaction_removed(mock_client, lambda: None, body, logger)
1324+
is None
1325+
)
1326+
1327+
12741328
def helper_options():
12751329
return [{"text": {"type": "plain_text", "text": "name"}, "value": "id"}]
12761330

0 commit comments

Comments
 (0)