feat: save otp code when reject reconciliation #149
|
@ -15,6 +15,12 @@ import { TransactionEntity } from 'src/modules/transaction/transaction/domain/en
|
|||
|
||||
@Injectable()
|
||||
export class CancelReconciliationManager extends BaseUpdateStatusManager<TransactionEntity> {
|
||||
protected payloadBody: any;
|
||||
|
||||
setCustomBodyRequest(body) {
|
||||
this.payloadBody = body;
|
||||
}
|
||||
|
||||
getResult(): string {
|
||||
return `Success active data ${this.result.id}`;
|
||||
}
|
||||
|
@ -50,6 +56,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
|||
async beforeProcess(): Promise<void> {
|
||||
if (this.data.is_recap_transaction) {
|
||||
Object.assign(this.data, {
|
||||
otp_code: this.payloadBody?.otp_code,
|
||||
reconciliation_confirm_by: null,
|
||||
reconciliation_confirm_date: null,
|
||||
reconciliation_status: STATUS.PENDING,
|
||||
|
@ -58,6 +65,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
|||
});
|
||||
} else {
|
||||
Object.assign(this.data, {
|
||||
otp_code: this.payloadBody?.otp_code,
|
||||
reconciliation_mdr: this.data.reconciliation_mdr ?? null,
|
||||
reconciliation_confirm_by: this.user.name,
|
||||
reconciliation_confirm_date: new Date().getTime(),
|
||||
|
@ -70,6 +78,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
|||
: this.data.settlement_date,
|
||||
});
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -58,9 +58,10 @@ export class ReconciliationDataOrchestrator {
|
|||
return this.batchConfirmManager.getResult();
|
||||
}
|
||||
|
||||
async cancel(dataId): Promise<string> {
|
||||
async cancel(dataId, body): Promise<string> {
|
||||
this.cancelManager.setData(dataId, STATUS.REJECTED);
|
||||
this.cancelManager.setService(this.serviceData, TABLE_NAME.TRANSACTION);
|
||||
this.cancelManager.setCustomBodyRequest(body);
|
||||
await this.cancelManager.execute();
|
||||
return this.cancelManager.getResult();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
import { ApiProperty } from '@nestjs/swagger';
|
||||
import { IsNotEmpty, IsString } from 'class-validator';
|
||||
|
||||
export class OtpVerifyDto {
|
||||
@ApiProperty({
|
||||
name: 'otp_code',
|
||||
type: String,
|
||||
required: true,
|
||||
example: '2345',
|
||||
})
|
||||
@IsString()
|
||||
@IsNotEmpty()
|
||||
otp_code: string;
|
||||
}
|
|
@ -16,6 +16,7 @@ import { Public } from 'src/core/guards';
|
|||
import { TransactionEntity } from '../../transaction/domain/entities/transaction.entity';
|
||||
import { UpdateReconciliationDto } from './dto/reconciliation.dto';
|
||||
import { RecapReconciliationDto } from './dto/recap.dto';
|
||||
import { OtpVerifyDto } from './dto/cancel-top-dto';
|
||||
|
||||
@ApiTags(`${MODULE_NAME.RECONCILIATION.split('-').join(' ')} - data`)
|
||||
@Controller(`v1/${MODULE_NAME.RECONCILIATION}`)
|
||||
|
@ -40,8 +41,11 @@ export class ReconciliationDataController {
|
|||
}
|
||||
|
||||
@Patch(':id/cancel')
|
||||
async cancel(@Param('id') dataId: string): Promise<string> {
|
||||
return await this.orchestrator.cancel(dataId);
|
||||
async cancel(
|
||||
@Param('id') dataId: string,
|
||||
@Body() body: OtpVerifyDto,
|
||||
): Promise<string> {
|
||||
return await this.orchestrator.cancel(dataId, body);
|
||||
}
|
||||
|
||||
@Put('/batch-cancel')
|
||||
|
|
Loading…
Reference in New Issue