Merge pull request #1135 from Tria-plc/staging

Staging
This commit is contained in:
Nathnael Wondisha
2026-08-06 08:37:23 +03:00
committed by GitHub
4 changed files with 20 additions and 10 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -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);

View File

@@ -169,13 +169,13 @@ export class CbeBillService {
async pay(dto: CbePaymentRequestDto): Promise<CbePaymentResponseDto> {
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(