diff --git a/apps/backend/src/config/dependencyConfigESS.ts b/apps/backend/src/config/dependencyConfigESS.ts index 9f8d4927e4..816e805996 100644 --- a/apps/backend/src/config/dependencyConfigESS.ts +++ b/apps/backend/src/config/dependencyConfigESS.ts @@ -1,4 +1,3 @@ -/* eslint-disable @typescript-eslint/no-empty-function */ import 'reflect-metadata'; import { DataAccessUsersAuthorization } from '../auth/DataAccessUsersAuthorization'; @@ -65,6 +64,7 @@ import { configureESSDevelopmentEnvironment } from './ess/configureESSEnvironmen import { configureGraylogLogger } from './ess/configureGrayLogLogger'; import { Tokens } from './Tokens'; import { mapClass, mapValue } from './utils'; +import { SMTPMailService } from '../eventHandlers/MailService/SMTP/SMTPMailService'; mapClass(Tokens.RoleDataSource, PostgresRoleDataSource); mapClass(Tokens.AdminDataSource, PostgresAdminDataSourceWithAutoUpgrade); @@ -130,6 +130,12 @@ mapClass(Tokens.AssetRegistrar, EAMAssetRegistrar); mapClass(Tokens.MailService, SparkPostMailService); +if (isDevelopment) { + mapValue(Tokens.MailService, new SMTPMailService()); +} else { + mapClass(Tokens.MailService, SparkPostMailService); +} + mapValue(Tokens.FapDataColumns, FapDataColumns); mapValue(Tokens.FapDataRow, getDataRow); mapValue(Tokens.PopulateRow, populateRow); diff --git a/apps/backend/src/eventHandlers/MailService/SMTP/SMTPMailService.ts b/apps/backend/src/eventHandlers/MailService/SMTP/SMTPMailService.ts index 12933b258a..33a9334d15 100644 --- a/apps/backend/src/eventHandlers/MailService/SMTP/SMTPMailService.ts +++ b/apps/backend/src/eventHandlers/MailService/SMTP/SMTPMailService.ts @@ -105,6 +105,21 @@ export class SMTPMailService extends MailService { ); } + private async resolveEmailTemplate(identifier: string) { + const isNumericIdentifier = /^\d+$/.test(identifier); + + if (isNumericIdentifier) { + const byId = + await this.emailTemplateDataSource.getEmailTemplate(+identifier); + + if (byId) { + return byId; + } + } + + return this.emailTemplateDataSource.getEmailTemplateByName(identifier); + } + private async compileEmailTemplate(options: SendMailOptions): Promise<{ subject: string; body: string; @@ -113,8 +128,8 @@ export class SMTPMailService extends MailService { return { subject: '= ``', body: '' }; } - const emailTemplate = await this.emailTemplateDataSource.getEmailTemplate( - +options.content.template + const emailTemplate = await this.resolveEmailTemplate( + options.content.template ); if (!emailTemplate) {