Merge pull request 'feat: save otp code when reject reconciliation' (#149) from feat/otp-cancel into development
Reviewed-on: #149pull/157/head 1.6.13-alpha.1
commit
4e2ec4d94f
|
@ -15,6 +15,12 @@ import { TransactionEntity } from 'src/modules/transaction/transaction/domain/en
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class CancelReconciliationManager extends BaseUpdateStatusManager<TransactionEntity> {
|
export class CancelReconciliationManager extends BaseUpdateStatusManager<TransactionEntity> {
|
||||||
|
protected payloadBody: any;
|
||||||
|
|
||||||
|
setCustomBodyRequest(body) {
|
||||||
|
this.payloadBody = body;
|
||||||
|
}
|
||||||
|
|
||||||
getResult(): string {
|
getResult(): string {
|
||||||
return `Success active data ${this.result.id}`;
|
return `Success active data ${this.result.id}`;
|
||||||
}
|
}
|
||||||
|
@ -50,6 +56,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
||||||
async beforeProcess(): Promise<void> {
|
async beforeProcess(): Promise<void> {
|
||||||
if (this.data.is_recap_transaction) {
|
if (this.data.is_recap_transaction) {
|
||||||
Object.assign(this.data, {
|
Object.assign(this.data, {
|
||||||
|
otp_code: this.payloadBody?.otp_code,
|
||||||
reconciliation_confirm_by: null,
|
reconciliation_confirm_by: null,
|
||||||
reconciliation_confirm_date: null,
|
reconciliation_confirm_date: null,
|
||||||
reconciliation_status: STATUS.PENDING,
|
reconciliation_status: STATUS.PENDING,
|
||||||
|
@ -58,6 +65,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
Object.assign(this.data, {
|
Object.assign(this.data, {
|
||||||
|
otp_code: this.payloadBody?.otp_code,
|
||||||
reconciliation_mdr: this.data.reconciliation_mdr ?? null,
|
reconciliation_mdr: this.data.reconciliation_mdr ?? null,
|
||||||
reconciliation_confirm_by: this.user.name,
|
reconciliation_confirm_by: this.user.name,
|
||||||
reconciliation_confirm_date: new Date().getTime(),
|
reconciliation_confirm_date: new Date().getTime(),
|
||||||
|
@ -70,6 +78,7 @@ export class CancelReconciliationManager extends BaseUpdateStatusManager<Transac
|
||||||
: this.data.settlement_date,
|
: this.data.settlement_date,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,9 +58,10 @@ export class ReconciliationDataOrchestrator {
|
||||||
return this.batchConfirmManager.getResult();
|
return this.batchConfirmManager.getResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
async cancel(dataId): Promise<string> {
|
async cancel(dataId, body): Promise<string> {
|
||||||
this.cancelManager.setData(dataId, STATUS.REJECTED);
|
this.cancelManager.setData(dataId, STATUS.REJECTED);
|
||||||
this.cancelManager.setService(this.serviceData, TABLE_NAME.TRANSACTION);
|
this.cancelManager.setService(this.serviceData, TABLE_NAME.TRANSACTION);
|
||||||
|
this.cancelManager.setCustomBodyRequest(body);
|
||||||
await this.cancelManager.execute();
|
await this.cancelManager.execute();
|
||||||
return this.cancelManager.getResult();
|
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 { TransactionEntity } from '../../transaction/domain/entities/transaction.entity';
|
||||||
import { UpdateReconciliationDto } from './dto/reconciliation.dto';
|
import { UpdateReconciliationDto } from './dto/reconciliation.dto';
|
||||||
import { RecapReconciliationDto } from './dto/recap.dto';
|
import { RecapReconciliationDto } from './dto/recap.dto';
|
||||||
|
import { OtpVerifyDto } from './dto/cancel-top-dto';
|
||||||
|
|
||||||
@ApiTags(`${MODULE_NAME.RECONCILIATION.split('-').join(' ')} - data`)
|
@ApiTags(`${MODULE_NAME.RECONCILIATION.split('-').join(' ')} - data`)
|
||||||
@Controller(`v1/${MODULE_NAME.RECONCILIATION}`)
|
@Controller(`v1/${MODULE_NAME.RECONCILIATION}`)
|
||||||
|
@ -40,8 +41,11 @@ export class ReconciliationDataController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Patch(':id/cancel')
|
@Patch(':id/cancel')
|
||||||
async cancel(@Param('id') dataId: string): Promise<string> {
|
async cancel(
|
||||||
return await this.orchestrator.cancel(dataId);
|
@Param('id') dataId: string,
|
||||||
|
@Body() body: OtpVerifyDto,
|
||||||
|
): Promise<string> {
|
||||||
|
return await this.orchestrator.cancel(dataId, body);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Put('/batch-cancel')
|
@Put('/batch-cancel')
|
||||||
|
|
Loading…
Reference in New Issue