package
0.0.10
Repository: https://github.com/kingstonduy/go-core.git
Documentation: pkg.go.dev

# README

Usage

//@Author: Nghiant5
// This funcion is a sample to register a handler for commandType
// This function you can init it in folder configuration of your service
// And you Dependency Inject your dispatcher and use it to register
// And Interface Handler used for handler -> and the handler sample is below this function
func InitCommandHandlerRegister(dispatcher dp.DispatcherHandlerSaga, executeCommand domain.ExecuteNapasPaymentCommand, emitCommand domain.ExecuteNapasPaymentEmitHandler) {

	dispatcher.RegisterHandler(string(command.TransactionReceivedCommandType), emitCommand.EmitSagaCreate)
	dispatcher.RegisterHandler(string(command.TransactionCreatedCommandType), executeCommand.ValidateAccount)
	dispatcher.RegisterHandler(string(command.CurrentAccountValidatedCommandType), executeCommand.FundTransferExecute)
	dispatcher.RegisterHandler(string(command.FundTransferResponseCommandType), emitCommand.EmitFundTransferResult)
	dispatcher.RegisterHandler(string(command.FundTransferSuccessCommandType), executeCommand.SendingNapas)
	dispatcher.RegisterHandler(string(command.NapasAdapterSuccessCommandType), emitCommand.EmitNapasResult)
	dispatcher.RegisterHandler(string(command.NapasExecutedCommandType), executeCommand.PublishResult)
}

type ExecuteNapasPaymentCommand interface {
	ValidateAccount(ctx context.Context, esEvent events.Event) error
	FundTransferExecute(ctx context.Context, esEvent events.Event) error
	SendingNapas(ctx context.Context, esEvent events.Event) error
	PublishResult(ctx context.Context, esEvent events.Event) error
}

type ExecuteNapasPaymentEmitHandler interface {
	EmitSagaCreated(ctx context.Context, esEvent events.Event) error
	EmitFundTransferResult(ctx context.Context, esEvent events.Event) error
	EmitNapasResult(ctx context.Context, esEvent events.Event) error

}