diff --git a/core/src/command/commands/SendEmailCommand.ts b/core/src/command/commands/SendEmailCommand.ts index 957e08bc8..43b2da74b 100644 --- a/core/src/command/commands/SendEmailCommand.ts +++ b/core/src/command/commands/SendEmailCommand.ts @@ -3,6 +3,7 @@ import { sendTransactionReceivedEmail } from '../../emails/sendEmailVariants'; import { findForeignUserByUuids, findUserByIdentifier } from 'database'; import { LOG4JS_BASE_CATEGORY_NAME } from '../../config/const'; import { getLogger } from 'log4js'; +import Decimal from 'decimal.js-light'; const createLogger = (method: string) => getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.command.commands.SendEmailCommand.${method}`) @@ -14,16 +15,18 @@ export interface SendEmailCommandParams { receiverComUuid: string; receiverGradidoId: string; memo?: string; - amount?: number; + amount?: string; } export class SendEmailCommand extends BaseCommand<{ success: boolean }> { static readonly SEND_MAIL_COMMAND = 'SEND_MAIL_COMMAND'; protected requiredFields: string[] = ['mailType', 'senderComUuid', 'senderGradidoId', 'receiverComUuid', 'receiverGradidoId']; + protected sendEmailCommandParams: SendEmailCommandParams; constructor(params: SendEmailCommandParams) { const methodLogger = createLogger(`constructor`) methodLogger.debug(`constructor() params=${JSON.stringify(params)}`) super(params); + this.sendEmailCommandParams = params; } validate(): boolean { @@ -42,15 +45,15 @@ export class SendEmailCommand extends BaseCommand<{ success: boolean }> { throw new Error('Invalid command parameters'); } // find sender user - const senderUser = await findForeignUserByUuids(this.params.senderComUuid, this.params.senderGradidoId); + const senderUser = await findForeignUserByUuids(this.sendEmailCommandParams.senderComUuid, this.sendEmailCommandParams.senderGradidoId); if (!senderUser) { - const errmsg = `Sender user not found: ${this.params.senderComUuid} ${this.params.senderGradidoId}`; + const errmsg = `Sender user not found: ${this.sendEmailCommandParams.senderComUuid} ${this.sendEmailCommandParams.senderGradidoId}`; methodLogger.error(errmsg); throw new Error(errmsg); } - const recipientUser = await findUserByIdentifier(this.params.receiverGradidoId, this.params.receiverComUuid); + const recipientUser = await findUserByIdentifier(this.sendEmailCommandParams.receiverGradidoId, this.sendEmailCommandParams.receiverComUuid); if (!recipientUser) { - const errmsg = `Recipient user not found: ${this.params.receiverComUuid} ${this.params.receiverGradidoId}`; + const errmsg = `Recipient user not found: ${this.sendEmailCommandParams.receiverComUuid} ${this.sendEmailCommandParams.receiverGradidoId}`; methodLogger.error(errmsg); throw new Error(errmsg); } @@ -62,16 +65,16 @@ export class SendEmailCommand extends BaseCommand<{ success: boolean }> { language: recipientUser.language, senderFirstName: senderUser.firstName, senderLastName: senderUser.lastName, - senderEmail: senderUser.emailContact?.email, - memo: this.params.memo || '', - transactionAmount: this.params.amount || 0, + senderEmail: 'transactionReceivedNoSender', + memo: this.sendEmailCommandParams.memo || '', + transactionAmount: new Decimal(this.sendEmailCommandParams.amount || 0), }; - switch(this.params.mailType) { + switch(this.sendEmailCommandParams.mailType) { case 'sendTransactionReceivedEmail': await sendTransactionReceivedEmail(emailParams); break; default: - throw new Error(`Unknown mail type: ${this.params.mailType}`); + throw new Error(`Unknown mail type: ${this.sendEmailCommandParams.mailType}`); } try {