From 28d0b35f8e0fdbe625a0d661d100c8c04cb42534 Mon Sep 17 00:00:00 2001 From: MartinBraquet Date: Tue, 30 Sep 2025 20:53:26 +0200 Subject: [PATCH] Move discord move to create profile --- backend/api/src/create-profile.ts | 46 +++++++++++++++++++++++++++++-- backend/api/src/create-user.ts | 32 --------------------- 2 files changed, 44 insertions(+), 34 deletions(-) diff --git a/backend/api/src/create-profile.ts b/backend/api/src/create-profile.ts index fab03e1c..25355f55 100644 --- a/backend/api/src/create-profile.ts +++ b/backend/api/src/create-profile.ts @@ -7,6 +7,7 @@ import { track } from 'shared/analytics' import { updateUser } from 'shared/supabase/users' import { tryCatch } from 'common/util/try-catch' import { insert } from 'shared/supabase/utils' +import {sendDiscordMessage} from "common/discord/core"; export const createProfile: APIHandler<'create-profile'> = async (body, auth) => { const pg = createSupabaseDirectClient() @@ -40,7 +41,48 @@ export const createProfile: APIHandler<'create-profile'> = async (body, auth) => } log('Created user', data) - await track(user.id, 'create profile', { username: user.username }) - return data + const continuation = async () => { + try { + await track(auth.uid, 'create profile', {username: user.username}) + } catch (e) { + console.log('Failed to track create profile', e) + } + try { + await sendDiscordMessage( + `**${user.name}** just created a profile at https://www.compassmeet.com/${user.username}`, + 'members', + ) + } catch (e) { + console.log('Failed to send discord new profile', e) + } + try { + const nProfiles = await pg.one( + `SELECT count(*) FROM users`, + [], + (r) => Number(r.count) + ) + + const isMilestone = (n: number) => { + return ( + [15, 20, 30, 40].includes(n) || // early milestones + n % 50 === 0 + ) + } + if (isMilestone(nProfiles)) { + await sendDiscordMessage( + `We just reached **${nProfiles}** total profiles! 🎉`, + 'general', + ) + } + + } catch (e) { + console.log('Failed to send discord user milestone', e) + } + } + + return { + result: data, + continue: continuation, + } } diff --git a/backend/api/src/create-user.ts b/backend/api/src/create-user.ts index 44d60105..9360a3e2 100644 --- a/backend/api/src/create-user.ts +++ b/backend/api/src/create-user.ts @@ -13,7 +13,6 @@ import {createSupabaseDirectClient} from 'shared/supabase/init' import {insert} from 'shared/supabase/utils' import {convertPrivateUser, convertUser} from 'common/supabase/users' import {getBucket} from "shared/firebase-utils"; -import {sendDiscordMessage} from "common/discord/core"; export const createUser: APIHandler<'create-user'> = async ( props, @@ -129,37 +128,6 @@ export const createUser: APIHandler<'create-user'> = async ( } catch (e) { console.log('Failed to track create profile', e) } - try { - await sendDiscordMessage( - `**${user.name}** just created a profile at https://www.compassmeet.com/${user.username}`, - 'members', - ) - } catch (e) { - console.log('Failed to send discord new user', e) - } - try { - const nProfiles = await pg.one( - `SELECT count(*) FROM users`, - [], - (r) => Number(r.count) - ) - - const isMilestone = (n: number) => { - return ( - [15, 20, 30, 40].includes(n) || // early milestones - n % 50 === 0 - ) - } - if (isMilestone(nProfiles)) { - await sendDiscordMessage( - `We just reached **${nProfiles}** total profiles! 🎉`, - 'general', - ) - } - - } catch (e) { - console.log('Failed to send discord user milestone', e) - } } return {