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

Function handleUserChange

server/src/slack/events.ts:206–243  ·  view source on GitHub ↗
(event: SlackUserChangeEvent)

Source from the content-addressed store, hash-verified

204 * Updates our database with the new profile data
205 */
206export async function handleUserChange(event: SlackUserChangeEvent): Promise<void> {
207 const user = event.user;
208
209 if (!user?.id) {
210 logger.warn('user_change event missing user data');
211 return;
212 }
213
214 logger.debug(
215 { userId: user.id, email: user.profile?.email, name: user.profile?.real_name },
216 'Slack user profile changed'
217 );
218
219 try {
220 const email = user.profile?.email || null;
221 const displayName = user.profile?.display_name || user.profile?.display_name_normalized || null;
222 const realName = user.profile?.real_name || user.real_name || null;
223
224 // Upsert the user into our database with updated profile
225 await slackDb.upsertSlackUser({
226 slack_user_id: user.id,
227 slack_email: email,
228 slack_display_name: displayName,
229 slack_real_name: realName,
230 slack_is_bot: user.is_bot || false,
231 slack_is_deleted: user.deleted || false,
232 slack_tz_offset: user.tz_offset ?? null,
233 });
234
235 // Invalidate caches since user data changed
236 invalidateUnifiedUsersCache();
237 invalidateMemberContextCache(user.id);
238
239 logger.debug({ userId: user.id }, 'Slack user profile updated');
240 } catch (error) {
241 logger.error({ error, userId: user.id }, 'Failed to process user_change event');
242 }
243}
244
245/**
246 * Try to auto-map a Slack user to a web user by email

Callers 1

handleSlackEventFunction · 0.85

Calls 4

warnMethod · 0.80
upsertSlackUserMethod · 0.80

Tested by

no test coverage detected