Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Commit 548cef9

Browse files
aliciamatsumotoAlicia Matsumoto
andauthored
ephemeral message for cases (#6199)
Co-authored-by: Alicia Matsumoto <amats@netflix.com>
1 parent 2b76d9d commit 548cef9

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

src/dispatch/plugins/dispatch_slack/case/interactive.py

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
Section,
1919
UsersSelect,
2020
)
21-
from slack_bolt import Ack, BoltContext, Respond
21+
from slack_bolt import Ack, BoltContext, Respond, BoltRequest
2222
from slack_sdk.errors import SlackApiError
2323
from slack_sdk.web.client import WebClient
2424
from sqlalchemy.exc import IntegrityError
@@ -100,6 +100,7 @@
100100
shortcut_context_middleware,
101101
subject_middleware,
102102
user_middleware,
103+
is_bot,
103104
)
104105
from dispatch.plugins.dispatch_slack.modals.common import send_success_modal
105106
from dispatch.plugins.dispatch_slack.models import (
@@ -1379,6 +1380,35 @@ def handle_case_after_hours_message(
13791380
)
13801381

13811382

1383+
@message_dispatcher.add(subject=CaseSubjects.case)
1384+
def handle_thread_creation(
1385+
ack: Ack,
1386+
client: WebClient,
1387+
payload: dict,
1388+
db_session: Session,
1389+
context: BoltContext,
1390+
request: BoltRequest,
1391+
) -> None:
1392+
"""Sends the user an ephemeral message if they use threads in a dedicated case channel."""
1393+
ack()
1394+
1395+
if not context["config"].ban_threads:
1396+
return
1397+
1398+
case = case_service.get(db_session=db_session, case_id=context["subject"].id)
1399+
if not case.dedicated_channel:
1400+
return
1401+
1402+
if payload.get("thread_ts") and not is_bot(request):
1403+
message = "Please refrain from using threads in case channels. Threads make it harder for case participants to maintain context."
1404+
client.chat_postEphemeral(
1405+
text=message,
1406+
channel=payload["channel"],
1407+
thread_ts=payload["thread_ts"],
1408+
user=payload["user"],
1409+
)
1410+
1411+
13821412
@app.action("button-link")
13831413
def ack_button_link(ack: Ack):
13841414
"""Handles noop button link action."""

0 commit comments

Comments
 (0)