From 52d3e9eb77638e007db108971343fb3c3fdcf9a9 Mon Sep 17 00:00:00 2001 From: Fredrik Strand Oseberg Date: Tue, 11 May 2021 12:15:20 +0200 Subject: [PATCH] fix: report email as not sent to fe if it throws (#844) --- src/lib/routes/admin-api/user-admin.ts | 33 ++++++++++++++++---------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/src/lib/routes/admin-api/user-admin.ts b/src/lib/routes/admin-api/user-admin.ts index d4d2297a12..34496894e3 100644 --- a/src/lib/routes/admin-api/user-admin.ts +++ b/src/lib/routes/admin-api/user-admin.ts @@ -33,12 +33,12 @@ export default class UserAdminController extends Controller { resetTokenService, sessionService, }: Pick< - IUnleashServices, - | 'userService' - | 'accessService' - | 'emailService' - | 'resetTokenService' - | 'sessionService' + IUnleashServices, + | 'userService' + | 'accessService' + | 'emailService' + | 'resetTokenService' + | 'sessionService' >, ) { super(config); @@ -137,13 +137,22 @@ export default class UserAdminController extends Controller { user.email, ); + let emailSent = false; const emailConfigured = this.emailService.configured(); if (emailConfigured) { - await this.emailService.sendGettingStartedMail( - createdUser.name, - createdUser.email, - inviteLink.toString(), - ); + try { + await this.emailService.sendGettingStartedMail( + createdUser.name, + createdUser.email, + inviteLink.toString(), + ); + emailSent = true; + } catch (e) { + this.logger.warn( + 'email was configured, but sending failed due to: ', + e, + ); + } } else { this.logger.warn( 'email was not sent to the user because email configuration is lacking', @@ -153,7 +162,7 @@ export default class UserAdminController extends Controller { res.status(201).send({ ...createdUser, inviteLink, - emailSent: emailConfigured, + emailSent, rootRole, }); } catch (e) {