From 1d43878ad68ff2d268ff4ca9602709be83cdd5bf Mon Sep 17 00:00:00 2001 From: clauspeterhuebner Date: Thu, 12 Feb 2026 02:02:07 +0100 Subject: [PATCH] change parameter type of command constructor --- core/src/command/BaseCommand.ts | 4 ++- core/src/command/CommandFactory.ts | 2 +- core/src/command/commands/SendEmailCommand.ts | 26 ++++++++++--------- 3 files changed, 18 insertions(+), 14 deletions(-) diff --git a/core/src/command/BaseCommand.ts b/core/src/command/BaseCommand.ts index f6e6ef5a6..5251e35d4 100644 --- a/core/src/command/BaseCommand.ts +++ b/core/src/command/BaseCommand.ts @@ -8,7 +8,7 @@ const createLogger = (method: string) => export abstract class BaseCommand implements Command { protected abstract requiredFields: string[]; - protected constructor(protected readonly params: any = {}) { + protected constructor(protected readonly params: any[]) { // this.validateRequiredFields(); } @@ -21,6 +21,7 @@ export abstract class BaseCommand implements Command { return; } methodLogger.debug(`validateRequiredFields() requiredFields=${JSON.stringify(this.requiredFields)}`) + /* const missingFields = this.requiredFields.filter(field => this.params[field] === undefined || this.params[field] === null || this.params[field] === '' ); @@ -30,6 +31,7 @@ export abstract class BaseCommand implements Command { methodLogger.error(`validateRequiredFields() missing fields: ${missingFields.join(', ')}`) throw new Error(`Missing required fields for ${this.constructor.name}: ${missingFields.join(', ')}`); } + */ } validate(): boolean { diff --git a/core/src/command/CommandFactory.ts b/core/src/command/CommandFactory.ts index 3fa1510ce..a8ba1b8fd 100644 --- a/core/src/command/CommandFactory.ts +++ b/core/src/command/CommandFactory.ts @@ -32,7 +32,7 @@ export class CommandFactory { } } - createCommand(name: string, params: any = {}): Command { + createCommand(name: string, params: string[]): Command { const methodLogger = createLogger(`createCommand`) if (methodLogger.isDebugEnabled()) { methodLogger.debug(`createCommand() name=${name} params=${JSON.stringify(params)}`) diff --git a/core/src/command/commands/SendEmailCommand.ts b/core/src/command/commands/SendEmailCommand.ts index 8f780d11f..e64694249 100644 --- a/core/src/command/commands/SendEmailCommand.ts +++ b/core/src/command/commands/SendEmailCommand.ts @@ -20,11 +20,13 @@ export interface SendEmailCommandParams { 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) { + constructor(params: any[]) { const methodLogger = createLogger(`constructor`) methodLogger.debug(`constructor() params=${JSON.stringify(params)}`) super(params); + this.sendEmailCommandParams = params[0] as SendEmailCommandParams; } validate(): boolean { @@ -39,25 +41,25 @@ export class SendEmailCommand extends BaseCommand<{ success: boolean }> { async execute(): Promise<{ success: boolean }> { const methodLogger = createLogger(`execute`) - methodLogger.debug(`execute() params=${JSON.stringify(this.params)}`) + methodLogger.debug(`execute() params=${JSON.stringify(this.sendEmailCommandParams)}`) if (!this.validate()) { throw new Error('Invalid command parameters'); } // find sender user - methodLogger.debug(`find sender user: ${this.params.senderComUuid} ${this.params.senderGradidoId}`) - const senderUser = await findForeignUserByUuids(this.params.senderComUuid, this.params.senderGradidoId); + methodLogger.debug(`find sender user: ${this.sendEmailCommandParams.senderComUuid} ${this.sendEmailCommandParams.senderGradidoId}`) + const senderUser = await findForeignUserByUuids(this.sendEmailCommandParams.senderComUuid, this.sendEmailCommandParams.senderGradidoId); methodLogger.debug(`senderUser=${JSON.stringify(senderUser)}`) 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); } - methodLogger.debug(`find recipient user: ${this.params.receiverComUuid} ${this.params.receiverGradidoId}`) - const recipientUser = await findUserByIdentifier(this.params.receiverGradidoId, this.params.receiverComUuid); + methodLogger.debug(`find recipient user: ${this.sendEmailCommandParams.receiverComUuid} ${this.sendEmailCommandParams.receiverGradidoId}`) + const recipientUser = await findUserByIdentifier(this.sendEmailCommandParams.receiverGradidoId, this.sendEmailCommandParams.receiverComUuid); methodLogger.debug(`recipientUser=${JSON.stringify(recipientUser)}`) 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); } @@ -70,15 +72,15 @@ export class SendEmailCommand extends BaseCommand<{ success: boolean }> { senderFirstName: senderUser.firstName, senderLastName: senderUser.lastName, senderEmail: 'transactionReceivedNoSender', - memo: this.params.memo || '', - transactionAmount: new Decimal(this.params.amount || 0), + 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 {