MCPcopy Create free account
hub / github.com/adcontextprotocol/adcp / handleSlackEvent

Function handleSlackEvent

server/src/slack/events.ts:631–695  ·  view source on GitHub ↗
(payload: SlackEventPayload)

Source from the content-addressed store, hash-verified

629 * Main event dispatcher
630 */
631export async function handleSlackEvent(payload: SlackEventPayload): Promise<void> {
632 const event = payload.event;
633
634 if (!event) {
635 logger.warn('Slack event payload missing event object');
636 return;
637 }
638
639 switch (event.type) {
640 case 'team_join':
641 await handleTeamJoin(event as SlackTeamJoinEvent);
642 break;
643
644 case 'user_change':
645 await handleUserChange(event as SlackUserChangeEvent);
646 break;
647
648 case 'member_joined_channel':
649 await handleMemberJoinedChannel(event as SlackMemberJoinedChannelEvent);
650 break;
651
652 case 'message':
653 await handleMessage(event as SlackMessageEvent);
654 break;
655
656 case 'reaction_added':
657 await handleReactionAdded(event as SlackReactionAddedEvent);
658 break;
659
660 // Addie (AAO Community Agent) events
661 case 'assistant_thread_started':
662 if (isAddieReady()) {
663 const assistantEvent = event as SlackAssistantThreadStartedEvent;
664 await handleAssistantThreadStarted({
665 type: 'assistant_thread_started',
666 assistant_thread: assistantEvent.assistant_thread,
667 event_ts: assistantEvent.event_ts,
668 channel_id: assistantEvent.channel,
669 } as AssistantThreadStartedEvent);
670 } else {
671 logger.debug('Addie not ready, ignoring assistant_thread_started');
672 }
673 break;
674
675 case 'app_mention':
676 if (isAddieReady()) {
677 const mentionEvent = event as SlackAppMentionEvent;
678 await handleAppMention({
679 type: 'app_mention',
680 user: mentionEvent.user,
681 text: mentionEvent.text,
682 ts: mentionEvent.ts,
683 channel: mentionEvent.channel,
684 thread_ts: mentionEvent.thread_ts,
685 event_ts: mentionEvent.event_ts,
686 } as AppMentionEvent);
687 } else {
688 logger.debug('Addie not ready, ignoring app_mention');

Callers 1

createSlackRouterFunction · 0.85

Calls 9

handleTeamJoinFunction · 0.85
handleUserChangeFunction · 0.85
handleMessageFunction · 0.85
isAddieReadyFunction · 0.85
warnMethod · 0.80
handleReactionAddedFunction · 0.70
handleAppMentionFunction · 0.50

Tested by

no test coverage detected