Merge pull request #196 from Tria-plc/feat/payment-microservice

fix: ( telebirr ) fix webhook return types
This commit is contained in:
Abubeker Yasin
2026-06-17 12:12:34 +03:00
committed by GitHub
2 changed files with 9 additions and 10 deletions

View File

@@ -31,16 +31,15 @@ export class TelebirrWebhookService {
result: {
status: mapped,
providerTxnId,
paidAt: this.parseEpochSeconds(payload.trans_end_time),
paidAt: this.parseEpoch(payload.trans_end_time),
failureCode: payload.trade_status,
},
});
}
private parseEpochSeconds(raw: string | undefined): Date | undefined {
private parseEpoch(raw: string | undefined): Date | undefined {
if (!raw) return undefined;
const n = parseInt(raw, 10);
if (Number.isNaN(n)) return undefined;
return new Date(n * 1000);
return new Date(n < 1e12 ? n * 1000 : n);
}
}

View File

@@ -139,14 +139,14 @@ export class TelebirrProvider implements PaymentProvider {
mapWebhookTradeStatus(
tradeStatus: string | undefined,
): ProviderPaymentStatus {
switch (tradeStatus) {
case "Completed":
switch (tradeStatus?.toUpperCase()) {
case "COMPLETED":
return ProviderPaymentStatus.SUCCEEDED;
case "Failure":
case "Expired":
case "FAILURE":
return ProviderPaymentStatus.FAILED;
case "Paying":
case "Pending":
case "PAYING":
case "PENDING":
case "EXPIRED":
return ProviderPaymentStatus.PROCESSING;
default:
return ProviderPaymentStatus.PROCESSING;