From fbf02b485673b8ea84deb41ea2630ccc74fe84e6 Mon Sep 17 00:00:00 2001 From: Rebeka Dekany <50901361+rebekadekany@users.noreply.github.com> Date: Fri, 24 Nov 2023 12:07:39 +0100 Subject: [PATCH] [web] Track if the email is confirmed/verified (#15818) * Added email-verifed event * added email provider * check if the email is primary * rename confirm email segmentation * remove the segmentation because it duplicates verification-type * move the response * remove duplicate definition --------- Co-authored-by: Domagoj Kriskovic GitOrigin-RevId: 2956467b46a883fc0ee00c26dd446ba82fa5be26 --- .../src/Features/User/UserEmailsController.js | 24 ++++++++++++++++++- .../src/User/UserEmailsControllerTests.js | 1 + 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/services/web/app/src/Features/User/UserEmailsController.js b/services/web/app/src/Features/User/UserEmailsController.js index a53e5c07cd..297e0f86ca 100644 --- a/services/web/app/src/Features/User/UserEmailsController.js +++ b/services/web/app/src/Features/User/UserEmailsController.js @@ -295,7 +295,29 @@ const UserEmailsController = { 'failed to add audit log entry' ) } - res.sendStatus(200) + UserGetter.getUser( + userData.userId, + { email: 1 }, + function (error, user) { + if (error) { + logger.error( + { error, userId: userData.userId }, + 'failed to get user' + ) + } + const isPrimary = user?.email === userData.email + AnalyticsManager.recordEventForUser( + userData.userId, + 'email-verified', + { + provider: 'email', + verification_type: 'link', + isPrimary, + } + ) + res.sendStatus(200) + } + ) } ) } diff --git a/services/web/test/unit/src/User/UserEmailsControllerTests.js b/services/web/test/unit/src/User/UserEmailsControllerTests.js index bce081cd85..b16f91498a 100644 --- a/services/web/test/unit/src/User/UserEmailsControllerTests.js +++ b/services/web/test/unit/src/User/UserEmailsControllerTests.js @@ -21,6 +21,7 @@ describe('UserEmailsController', function () { } this.UserGetter = { + getUser: sinon.stub().yields(), getUserFullEmails: sinon.stub(), getUserByAnyEmail: sinon.stub(), promises: {