diff --git a/apps/edr-freight-api/src/modules/payment/payment-events.consumer.ts b/apps/edr-freight-api/src/modules/payment/payment-events.consumer.ts index 91237223c..e285c181c 100644 --- a/apps/edr-freight-api/src/modules/payment/payment-events.consumer.ts +++ b/apps/edr-freight-api/src/modules/payment/payment-events.consumer.ts @@ -1,4 +1,4 @@ -import { Injectable, Logger } from "@nestjs/common"; +import { Injectable, Logger, SetMetadata } from "@nestjs/common"; import { Nack, RabbitSubscribe } from "@golevelup/nestjs-rabbitmq"; import { Public } from "@edr/api-common"; import { @@ -14,6 +14,11 @@ import { PaymentService as PaymentSvc } from "./payment.service"; const FREIGHT_QUEUE = PAYMENT_QUEUES[PaymentService.FREIGHT]; +// @tria-plc/auditlog's global ClientLoggerInterceptor (present in deployed builds) +// crashes on non-HTTP contexts (`originalUrl.split` on a RabbitMQ message) and the +// resulting requeue storm blocks payment.succeeded forever. Its IgnoreLoggerAudit +// decorator is just this metadata key — set it directly so we don't need the package. +@SetMetadata("ignoreAuditLogger", true) @Injectable() export class PaymentEventsConsumer { private readonly logger = new Logger(PaymentEventsConsumer.name); diff --git a/apps/edr-passenger-api/src/common/utils/payment-deadline.utils.ts b/apps/edr-passenger-api/src/common/utils/payment-deadline.utils.ts index e125bb0bf..29ef49e59 100644 --- a/apps/edr-passenger-api/src/common/utils/payment-deadline.utils.ts +++ b/apps/edr-passenger-api/src/common/utils/payment-deadline.utils.ts @@ -8,7 +8,7 @@ */ /** Maximum time (hours) a passenger has to pay after booking. */ -export const MAX_PAYMENT_HOURS = 2; +export const MAX_PAYMENT_HOURS = 240; /** Minutes before departure: cutoff for new bookings and payment deadline. */ export const CUTOFF_MINUTES = 30; diff --git a/apps/edr-passenger-api/src/modules/payments/payment-events.consumer.ts b/apps/edr-passenger-api/src/modules/payments/payment-events.consumer.ts index 777a2704b..812b4617e 100644 --- a/apps/edr-passenger-api/src/modules/payments/payment-events.consumer.ts +++ b/apps/edr-passenger-api/src/modules/payments/payment-events.consumer.ts @@ -1,4 +1,4 @@ -import { Injectable, Logger } from '@nestjs/common'; +import { Injectable, Logger, SetMetadata } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { Nack, RabbitSubscribe } from '@golevelup/nestjs-rabbitmq'; import { IsPublic } from '@tria-plc/api-common/modules/auth/decorators/public.decorator'; @@ -15,6 +15,11 @@ import { PaymentsService } from './payments.service'; const PASSENGER_QUEUE = PAYMENT_QUEUES[PaymentService.PASSENGER]; +// @tria-plc/auditlog's global ClientLoggerInterceptor (present in deployed builds) +// crashes on non-HTTP contexts (`originalUrl.split` on a RabbitMQ message) and the +// resulting requeue storm blocks payment.succeeded forever. Its IgnoreLoggerAudit +// decorator is just this metadata key — set it directly so we don't need the package. +@SetMetadata('ignoreAuditLogger', true) @Injectable() export class PaymentEventsConsumer { private readonly logger = new Logger(PaymentEventsConsumer.name); diff --git a/apps/edr-payment-api/src/modules/cbe-bill/cbe-bill.service.ts b/apps/edr-payment-api/src/modules/cbe-bill/cbe-bill.service.ts index 1e4c70d17..478f60d0c 100644 --- a/apps/edr-payment-api/src/modules/cbe-bill/cbe-bill.service.ts +++ b/apps/edr-payment-api/src/modules/cbe-bill/cbe-bill.service.ts @@ -169,13 +169,13 @@ export class CbeBillService { async pay(dto: CbePaymentRequestDto): Promise { this.assertEnabled(); - this.logger.log({ - msg: "cbe.payment.request", - billId: dto.Bill_Id, - endToEndTxnId: dto.End_To_End_Txn_Id, - cbeTxnRef: dto.Cbe_Txn_Ref, - request: dto, - }); + // this.logger.log({ + // msg: "cbe.payment.request", + // billId: dto.Bill_Id, + // endToEndTxnId: dto.End_To_End_Txn_Id, + // cbeTxnRef: dto.Cbe_Txn_Ref, + // request: dto, + // }); // §6.5 idempotency on CBE's per-attempt id, in order. const prior = await this.cbeBillRepository.findByEndToEndTxnId(