From 1b6bc470262e1fd8fe42a73b617400333047171b Mon Sep 17 00:00:00 2001 From: Abubeker Yasin Date: Wed, 17 Jun 2026 12:04:00 +0300 Subject: [PATCH] fix: ( telebirr ) fix webhook return types --- .../webhooks/handlers/telebirr-webhook.service.ts | 7 +++---- .../src/providers/telebirr/telebirr.provider.ts | 12 ++++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/apps/edr-payment-api/src/modules/webhooks/handlers/telebirr-webhook.service.ts b/apps/edr-payment-api/src/modules/webhooks/handlers/telebirr-webhook.service.ts index e207e1d21..44af7d985 100644 --- a/apps/edr-payment-api/src/modules/webhooks/handlers/telebirr-webhook.service.ts +++ b/apps/edr-payment-api/src/modules/webhooks/handlers/telebirr-webhook.service.ts @@ -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); } } diff --git a/packages/payment-providers/src/providers/telebirr/telebirr.provider.ts b/packages/payment-providers/src/providers/telebirr/telebirr.provider.ts index d785fc65b..d732a51e3 100644 --- a/packages/payment-providers/src/providers/telebirr/telebirr.provider.ts +++ b/packages/payment-providers/src/providers/telebirr/telebirr.provider.ts @@ -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;