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

Method upsertSlackUser

server/src/db/slack-db.ts:25–62  ·  view source on GitHub ↗

* Upsert a Slack user from sync

(user: {
    slack_user_id: string;
    slack_email: string | null;
    slack_display_name: string | null;
    slack_real_name: string | null;
    slack_is_bot: boolean;
    slack_is_deleted: boolean;
    slack_tz_offset?: number | null;
  })

Source from the content-addressed store, hash-verified

23 * Upsert a Slack user from sync
24 */
25 async upsertSlackUser(user: {
26 slack_user_id: string;
27 slack_email: string | null;
28 slack_display_name: string | null;
29 slack_real_name: string | null;
30 slack_is_bot: boolean;
31 slack_is_deleted: boolean;
32 slack_tz_offset?: number | null;
33 }): Promise<SlackUserMapping> {
34 const result = await query<SlackUserMapping>(
35 `INSERT INTO slack_user_mappings (
36 slack_user_id, slack_email, slack_display_name, slack_real_name,
37 slack_is_bot, slack_is_deleted, slack_tz_offset, last_slack_sync_at
38 ) VALUES ($1, $2, $3, $4, $5, $6, $7, NOW())
39 ON CONFLICT (slack_user_id)
40 DO UPDATE SET
41 slack_email = EXCLUDED.slack_email,
42 slack_display_name = EXCLUDED.slack_display_name,
43 slack_real_name = EXCLUDED.slack_real_name,
44 slack_is_bot = EXCLUDED.slack_is_bot,
45 slack_is_deleted = EXCLUDED.slack_is_deleted,
46 slack_tz_offset = EXCLUDED.slack_tz_offset,
47 last_slack_sync_at = NOW(),
48 updated_at = NOW()
49 RETURNING *`,
50 [
51 user.slack_user_id,
52 user.slack_email,
53 user.slack_display_name,
54 user.slack_real_name,
55 user.slack_is_bot,
56 user.slack_is_deleted,
57 user.slack_tz_offset ?? null,
58 ]
59 );
60
61 return result.rows[0];
62 }
63
64 /**
65 * Mark a Slack user as deleted (e.g. when the Slack API returns user_not_found)

Callers 4

handleTeamJoinFunction · 0.80
handleUserChangeFunction · 0.80
syncSlackUsersFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected