From 15782fc5ce9d64e21cac27202882888de8a6d5d2 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Thu, 26 Jan 2023 19:32:41 +0800 Subject: [PATCH] Add some analytics when creating reports --- packages/api/src/resolvers/report/index.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/api/src/resolvers/report/index.ts b/packages/api/src/resolvers/report/index.ts index f38b7b5c2..edec570fd 100644 --- a/packages/api/src/resolvers/report/index.ts +++ b/packages/api/src/resolvers/report/index.ts @@ -10,6 +10,8 @@ import { saveAbuseReport, saveContentDisplayReport, } from '../../services/reports' +import { analytics } from '../../utils/analytics' +import { env } from '../../env' const SUCCESS_MESSAGE = `Your report has been submitted. Thank you.` const FAILURE_MESSAGE = @@ -40,6 +42,15 @@ export const reportItemResolver: ResolverFn< const { sharedBy, reportTypes } = args.input if (sharedBy && isAbuseReport(reportTypes)) { + analytics.track({ + userId: sharedBy, + event: 'report_created', + properties: { + type: 'abuse', + env: env.server.apiEnv, + }, + }) + // SharedBy is nullable for some report types, but not for abuse reports // So we force it const uid = ctx.claims?.uid || '' @@ -58,6 +69,17 @@ export const reportItemResolver: ResolverFn< message: FAILURE_MESSAGE, } } + + analytics.track({ + userId: uid, + event: 'report_created', + properties: { + type: 'content', + url: args.input.itemUrl, + env: env.server.apiEnv, + }, + }) + const report = await saveContentDisplayReport(uid, args.input) const message = report ? SUCCESS_MESSAGE : FAILURE_MESSAGE return {