-add condition for ppob_callback can't hit 2 times if the transaction is already success or failed (only pending)

This commit is contained in:
Fadli 2022-06-29 18:10:05 +07:00
parent 7aee976de6
commit 1fcc7ca8ad
2 changed files with 73 additions and 51 deletions

View File

@ -19,31 +19,17 @@ export class PpobCallbackController {
if (response['statuscode'] == 2) {
//TODO: UPDATE GAGAL
const updateTransaction =
await this.transactionService.callbackOrderFailed(
response['clientid'],
response,
);
return {
updateTransaction,
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to proccess',
};
}
//TODO: UPDATE BERHASIL
const updateTransaction =
await this.transactionService.callbackOrderSuccess(
response['clientid'],
response,
);
return {
updateTransaction,
statusCode: HttpStatus.OK,
message: 'success',
};
}
@Public()

View File

@ -1064,6 +1064,17 @@ export class TransactionService {
relations: ['product_price'],
});
if (dataTransaction.status == statusTransaction.FAILED) {
return {
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to update, the transaction already failed',
};
} else if (dataTransaction.status == statusTransaction.SUCCESS) {
return {
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to update, the transaction already success',
};
} else {
const dataMsg = callback.msg;
const failedReason = dataMsg.split('.');
@ -1144,6 +1155,13 @@ export class TransactionService {
'-',
'gagal',
);
}
return {
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to proccess',
};
}
}
@ -1155,6 +1173,19 @@ export class TransactionService {
relations: ['product_price'],
});
if (dataTransaction.status == statusTransaction.FAILED) {
return {
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to update, the transaction already failed',
};
} else if (dataTransaction.status == statusTransaction.SUCCESS) {
return {
statusCode: HttpStatus.BAD_REQUEST,
message: 'failed to update, the transaction already success',
};
} else {
dataTransaction.status = statusTransaction.SUCCESS;
dataTransaction.seri_number = callback['sn'];
dataTransaction.callback_json = callback;
@ -1228,6 +1259,11 @@ export class TransactionService {
dataTransaction.seri_number,
'berhasil',
);
}
return {
statusCode: HttpStatus.OK,
message: 'success',
};
}
}