From eb179c59113a4538f146ebd12ce11f03ed33eee8 Mon Sep 17 00:00:00 2001 From: Thibault Le Ouay Date: Tue, 1 Aug 2023 18:23:07 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20analytics=20(#124)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/analytics/src/type.ts | 12 +++++------- packages/api/src/router/clerk/webhook.ts | 25 ++++++++++++++---------- packages/api/src/router/monitor.ts | 6 ++---- packages/api/src/router/page.ts | 4 +--- 4 files changed, 23 insertions(+), 24 deletions(-) diff --git a/packages/analytics/src/type.ts b/packages/analytics/src/type.ts index c4bd5c6b..bbb65f1c 100644 --- a/packages/analytics/src/type.ts +++ b/packages/analytics/src/type.ts @@ -1,18 +1,16 @@ export type AnalyticsEvents = | { event: "User Created"; - properties: { - email: string; - }; + userId: string; + email: string; } | { event: "Monitor Created"; - properties: { url: string; periodicity: string }; + url: string; + periodicity: string; } | { event: "Page Created"; - properties: { - slug: string; - }; + slug: string; } | { event: "User Signed In" }; diff --git a/packages/api/src/router/clerk/webhook.ts b/packages/api/src/router/clerk/webhook.ts index a65028fd..0db69317 100644 --- a/packages/api/src/router/clerk/webhook.ts +++ b/packages/api/src/router/clerk/webhook.ts @@ -30,7 +30,7 @@ export const webhookRouter = createTRPCRouter({ .values({ tenantId: opts.input.data.data.id, }) - .returning({ id: user.id }) + .returning() .get(); const slug = generateSlug(2); @@ -55,14 +55,14 @@ export const webhookRouter = createTRPCRouter({ react: WelcomeEmail(), }); - await analytics.identify(userResult.id, { + await analytics.identify(String(userResult.id), { email: opts.input.data.data.email_addresses[0].email_address, + userId: userResult.id, }); await trackAnalytics({ event: "User Created", - properties: { - email: opts.input.data.data.email_addresses[0].email_address, - }, + userId: String(userResult.id), + email: opts.input.data.data.email_addresses[0].email_address, }); } }), @@ -74,11 +74,16 @@ export const webhookRouter = createTRPCRouter({ userSignedIn: webhookProcedure.mutation(async (opts) => { if (opts.input.data.type === "session.created") { const currentUser = await opts.ctx.db - .select({ id: user.id }) - .from(user) - .where(eq(user.tenantId, opts.input.data.data.user_id)) - .get(); - await analytics.identify(currentUser.id ); + .select({ id: user.id }) + .from(user) + .where(eq(user.tenantId, opts.input.data.data.user_id)) + .get(); + // Then it's the new user it might be null + if (!currentUser) return; + + await analytics.identify(String(currentUser.id), { + userId: currentUser.id, + }); await trackAnalytics({ event: "User Signed In" }); } }), diff --git a/packages/api/src/router/monitor.ts b/packages/api/src/router/monitor.ts index c58b6341..7382c6b4 100644 --- a/packages/api/src/router/monitor.ts +++ b/packages/api/src/router/monitor.ts @@ -81,10 +81,8 @@ export const monitorRouter = createTRPCRouter({ }); await trackAnalytics({ event: "Monitor Created", - properties: { - url: newMonitor.url, - periodicity: newMonitor.periodicity, - }, + url: newMonitor.url, + periodicity: newMonitor.periodicity, }); }), diff --git a/packages/api/src/router/page.ts b/packages/api/src/router/page.ts index 11643b07..56ecbdb9 100644 --- a/packages/api/src/router/page.ts +++ b/packages/api/src/router/page.ts @@ -84,9 +84,7 @@ export const pageRouter = createTRPCRouter({ }); await trackAnalytics({ event: "Page Created", - properties: { - slug: newPage.slug, - }, + slug: newPage.slug, }); }), -- 2.51.2