From 8061406a94e573a3104b74d4a8d595946692248e Mon Sep 17 00:00:00 2001 From: Artem Niehrieiev Date: Thu, 12 Jun 2025 09:59:21 +0000 Subject: [PATCH] refactor: streamline email sending process and improve logging in EmailService --- .../entities/cron-jobs/cron-jobs.service.ts | 16 ++++------ .../src/entities/email/email/email.service.ts | 30 +++++++++---------- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/backend/src/entities/cron-jobs/cron-jobs.service.ts b/backend/src/entities/cron-jobs/cron-jobs.service.ts index b6368df76..e5b93a743 100644 --- a/backend/src/entities/cron-jobs/cron-jobs.service.ts +++ b/backend/src/entities/cron-jobs/cron-jobs.service.ts @@ -72,9 +72,8 @@ export class CronJobsService { Constants.EXCEPTIONS_CHANNELS, ); } else { - // const mailingResultToString = this.sentEmailsToSimpleString(mailingResults); - await slackPostMessage(JSON.stringify(mailingResults), Constants.EXCEPTIONS_CHANNELS); - // await this.sendEmailResultsToSlack(mailingResults); + // await slackPostMessage(JSON.stringify(mailingResults), Constants.EXCEPTIONS_CHANNELS); + await this.sendEmailResultsToSlack(mailingResults); await slackPostMessage( `morning cron finished at ${Constants.CURRENT_TIME_FORMATTED()}`, Constants.EXCEPTIONS_CHANNELS, @@ -133,15 +132,10 @@ export class CronJobsService { for (let i = 0; i < results.length; i += chunkSize) { const chunk = results.slice(i, i + chunkSize); const message = this.emailCronResultToSlackString(chunk); + if (!message) { + continue; + } await slackPostMessage(message, Constants.EXCEPTIONS_CHANNELS); } } - - private sentEmailsToSimpleString(results: Array): string | null { - const emailsSent = results.map((result) => { - return result.accepted && result.accepted.length > 0 ? result.accepted.join(', ') : '-'; - }); - const emailsSentString = emailsSent.join(', \n'); - return emailsSentString; - } } diff --git a/backend/src/entities/email/email/email.service.ts b/backend/src/entities/email/email/email.service.ts index 27e53617f..d7726e90f 100644 --- a/backend/src/entities/email/email/email.service.ts +++ b/backend/src/entities/email/email/email.service.ts @@ -81,11 +81,9 @@ export class EmailService { public async sendRemindersToUsers(userEmails: Array): Promise> { const queue = new PQueue({ concurrency: 8 }); const mailingResults: Array = await Promise.all( - userEmails.map(async (email: string, index) => { + userEmails.map(async (email: string) => { return await queue.add(async () => { - const result = await this.sendReminderToUser(email); - console.info(`${index} email sending result ${JSON.stringify(result)}`); - return result; + return await this.sendReminderToUser(email); }); }), ); @@ -275,16 +273,18 @@ export class EmailService { } private buildMailingResults(results: Array): Array { - return results.map((result) => { - if (!result) { - return; - } - const { messageId, accepted, rejected } = result; - return { - messageId: messageId ? messageId : undefined, - accepted: accepted ? accepted : undefined, - rejected: rejected ? rejected : undefined, - }; - }); + return results + .map((result) => { + if (!result) { + return; + } + const { messageId, accepted, rejected } = result; + return { + messageId: messageId ? messageId : undefined, + accepted: accepted ? accepted : undefined, + rejected: rejected ? rejected : undefined, + }; + }) + .filter((result) => !!result); } }