From 2a98b5b7bfb964c6b903407d6b9bcd10bcebab7e Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Wed, 28 Oct 2020 11:05:54 -0500 Subject: [PATCH] Loggly-only user support events (#12676) * feat(analytics): Loggly-only user support events * fix(analytics): clean up more Unknowns --- website/server/controllers/api-v3/challenges.js | 5 +++++ website/server/controllers/api-v3/quests.js | 8 ++++---- website/server/controllers/top-level/payments/paypal.js | 2 +- website/server/controllers/top-level/payments/stripe.js | 2 +- website/server/libs/analyticsService.js | 8 +++++--- website/server/libs/cron.js | 2 +- 6 files changed, 17 insertions(+), 10 deletions(-) diff --git a/website/server/controllers/api-v3/challenges.js b/website/server/controllers/api-v3/challenges.js index 3e8bea0a6c..84801e28a5 100644 --- a/website/server/controllers/api-v3/challenges.js +++ b/website/server/controllers/api-v3/challenges.js @@ -221,6 +221,7 @@ api.createChallenge = { groupID: group._id, groupName: group.privacy === 'private' ? null : group.name, groupType: group._id === TAVERN_ID ? 'tavern' : group.type, + headers: req.headers, }); res.respond(201, response); @@ -286,6 +287,7 @@ api.joinChallenge = { groupID: group._id, groupName: group.privacy === 'private' ? null : group.name, groupType: group._id === TAVERN_ID ? 'tavern' : group.type, + headers: req.headers, }); res.respond(200, response); @@ -335,6 +337,7 @@ api.leaveChallenge = { groupID: challenge.group._id, groupName: challenge.group.privacy === 'private' ? null : challenge.group.name, groupType: challenge.group._id === TAVERN_ID ? 'tavern' : challenge.group.type, + headers: req.headers, }); res.respond(200, {}); @@ -748,6 +751,7 @@ api.deleteChallenge = { groupID: challenge.group._id, groupName: challenge.group.privacy === 'private' ? null : challenge.group.name, groupType: challenge.group._id === TAVERN_ID ? 'tavern' : challenge.group.type, + headers: req.headers, }); res.respond(200, {}); @@ -798,6 +802,7 @@ api.selectChallengeWinner = { groupID: challenge.group._id, groupName: challenge.group.privacy === 'private' ? null : challenge.group.name, groupType: challenge.group._id === TAVERN_ID ? 'tavern' : challenge.group.type, + headers: req.headers, }); res.respond(200, {}); diff --git a/website/server/controllers/api-v3/quests.js b/website/server/controllers/api-v3/quests.js index dd1105e58d..b0e2c08e6c 100644 --- a/website/server/controllers/api-v3/quests.js +++ b/website/server/controllers/api-v3/quests.js @@ -156,7 +156,7 @@ api.inviteToQuest = { questName: questKey, uuid: user._id, headers: req.headers, - }); + }, true); }, }; @@ -217,7 +217,7 @@ api.acceptQuest = { questName: group.quest.key, uuid: user._id, headers: req.headers, - }); + }, true); }, }; @@ -278,7 +278,7 @@ api.rejectQuest = { questName: group.quest.key, uuid: user._id, headers: req.headers, - }); + }, true); }, }; @@ -338,7 +338,7 @@ api.forceStart = { questName: group.quest.key, uuid: user._id, headers: req.headers, - }); + }, true); }, }; diff --git a/website/server/controllers/top-level/payments/paypal.js b/website/server/controllers/top-level/payments/paypal.js index ba3eaf64b3..1432ceea90 100644 --- a/website/server/controllers/top-level/payments/paypal.js +++ b/website/server/controllers/top-level/payments/paypal.js @@ -63,7 +63,7 @@ api.checkoutSuccess = { if (!customerId) throw new BadRequest(apiError('missingCustomerId')); await paypalPayments.checkoutSuccess({ - user, gemsBlock, gift, paymentId, customerId, + user, gemsBlock, gift, paymentId, customerId, headers: req.headers, }); if (req.query.noRedirect) { diff --git a/website/server/controllers/top-level/payments/stripe.js b/website/server/controllers/top-level/payments/stripe.js index 4a01108306..fec9230524 100644 --- a/website/server/controllers/top-level/payments/stripe.js +++ b/website/server/controllers/top-level/payments/stripe.js @@ -35,7 +35,7 @@ api.checkout = { const { groupId, coupon, gemsBlock } = req.query; await stripePayments.checkout({ - token, user, gemsBlock, gift, sub, groupId, coupon, + token, user, gemsBlock, gift, sub, groupId, coupon, headers: req.headers, }); res.respond(200, {}); diff --git a/website/server/libs/analyticsService.js b/website/server/libs/analyticsService.js index 45de7fef6c..f990b60a9d 100644 --- a/website/server/libs/analyticsService.js +++ b/website/server/libs/analyticsService.js @@ -174,7 +174,7 @@ function _formatDataForAmplitude (data) { return ampData; } -function _sendDataToAmplitude (eventType, data) { +function _sendDataToAmplitude (eventType, data, loggerOnly) { const amplitudeData = _formatDataForAmplitude(data); amplitudeData.event_type = eventType; @@ -183,6 +183,8 @@ function _sendDataToAmplitude (eventType, data) { logger.info('Amplitude Event', amplitudeData); } + if (loggerOnly) return Promise.resolve(null); + return amplitude .track(amplitudeData) .catch(err => logger.error(err, 'Error while sending data to Amplitude.')); @@ -312,9 +314,9 @@ function _setOnce (dataToSetOnce, uuid) { } // There's no error handling directly here because it's handled inside _sendDataTo{Amplitude|Google} -async function track (eventType, data) { +async function track (eventType, data, loggerOnly = false) { const promises = [ - _sendDataToAmplitude(eventType, data), + _sendDataToAmplitude(eventType, data, loggerOnly), _sendDataToGoogle(eventType, data), ]; if (data.user && data.user.registeredThrough) { diff --git a/website/server/libs/cron.js b/website/server/libs/cron.js index 67804c705e..f8755f7337 100644 --- a/website/server/libs/cron.js +++ b/website/server/libs/cron.js @@ -225,7 +225,7 @@ function trackCronAnalytics (analytics, user, _progress, options) { user, questName: user.party.quest.key, headers: options.headers, - }); + }, true); } }