diff --git a/core/src/command/CommandFactory.ts b/core/src/command/CommandFactory.ts index af367b276..7f39d3b02 100644 --- a/core/src/command/CommandFactory.ts +++ b/core/src/command/CommandFactory.ts @@ -2,13 +2,14 @@ import { Command } from './Command'; import { BaseCommand } from './BaseCommand'; import { getLogger } from 'log4js'; import { LOG4JS_BASE_CATEGORY_NAME } from '../config/const'; +import { ICommandConstructor } from './CommandTypes'; const createLogger = (method: string) => getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.command.CommandFactory.${method}`) export class CommandFactory { private static instance: CommandFactory; - private commands: Map Command> = new Map(); + private commands: Map = new Map(); private constructor() {} @@ -19,10 +20,10 @@ export class CommandFactory { return CommandFactory.instance; } - registerCommand(name: string, commandClass: new (params: any) => Command): void { + registerCommand(name: string, commandClass: ICommandConstructor): void { const methodLogger = createLogger(`registerCommand`) if (methodLogger.isDebugEnabled()) { - methodLogger.debug(`registerCommand() name=${name}`) + methodLogger.debug(`registerCommand() name=${name}, commandClass=${commandClass.name}`) } this.commands.set(name, commandClass); if (methodLogger.isDebugEnabled()) { @@ -36,6 +37,9 @@ export class CommandFactory { methodLogger.debug(`createCommand() name=${name} params=${JSON.stringify(params)}`) } const CommandClass = this.commands.get(name); + if (methodLogger.isDebugEnabled()) { + methodLogger.debug(`createCommand() name=${name} commandClass=${CommandClass ? CommandClass.name : 'null'}`) + } if (!CommandClass) { const errmsg = `Command ${name} not found`; methodLogger.error(errmsg); diff --git a/core/src/command/CommandTypes.ts b/core/src/command/CommandTypes.ts new file mode 100644 index 000000000..70fc16515 --- /dev/null +++ b/core/src/command/CommandTypes.ts @@ -0,0 +1,5 @@ +import { Command } from "./Command"; + +export interface ICommandConstructor { + new (params: any): Command; +} diff --git a/core/src/command/commands/SendEmailCommand.ts b/core/src/command/commands/SendEmailCommand.ts index 2caf51b76..78db629bc 100644 --- a/core/src/command/commands/SendEmailCommand.ts +++ b/core/src/command/commands/SendEmailCommand.ts @@ -7,19 +7,20 @@ import { getLogger } from 'log4js'; const createLogger = (method: string) => getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.command.CommandExecutor.${method}`) +export interface SendEmailCommandParams { + mailType: string; + senderComUuid: string; + senderGradidoId: string; + receiverComUuid: string; + receiverGradidoId: string; + memo?: string; + amount?: number; +} export class SendEmailCommand extends BaseCommand<{ success: boolean }> { static readonly SEND_MAIL_COMMAND = 'SEND_MAIL_COMMAND'; protected requiredFields: string[] = ['mailType', 'senderComUuid', 'senderGradidoId', 'receiverComUuid', 'receiverGradidoId']; - constructor(params: { - mailType: string, - senderComUuid: string, - senderGradidoId: string, - receiverComUuid: string, - receiverGradidoId: string, - memo?: string, - amount?: number, - }) { + constructor(params: SendEmailCommandParams) { super(params); } @@ -28,6 +29,8 @@ export class SendEmailCommand extends BaseCommand<{ success: boolean }> { if (!baseValid) { return false; } + // Additional validations + return true; }