From 96b1e8cd800be5db9232f8154385ab5f0a46a552 Mon Sep 17 00:00:00 2001 From: jos3duardo Date: Tue, 12 Aug 2025 09:09:37 -0400 Subject: [PATCH] Refactor payment processing services to use CreatePaymentDto and simplify job handling --- .../services/make-payment-to-processor.service.ts | 8 ++++---- src/modules/payments/services/payments-summary.service.ts | 6 ------ src/modules/payments/services/payments.service.ts | 3 +-- src/modules/payments/services/process-payment.service.ts | 4 ++-- 4 files changed, 7 insertions(+), 14 deletions(-) diff --git a/src/modules/payments/services/make-payment-to-processor.service.ts b/src/modules/payments/services/make-payment-to-processor.service.ts index ecba459..8b9ee76 100644 --- a/src/modules/payments/services/make-payment-to-processor.service.ts +++ b/src/modules/payments/services/make-payment-to-processor.service.ts @@ -4,7 +4,7 @@ import { HttpService } from '@nestjs/axios'; import { InjectRepository } from '@nestjs/typeorm'; import { Payment } from '../entities/payment.entity'; import { Repository } from 'typeorm'; -import { PaymentJobData } from '../../queue/queue.service'; +import { CreatePaymentDto } from '../dto/create-payment.dto'; @Injectable() export class MakePaymentToProcessorService { @@ -15,10 +15,10 @@ export class MakePaymentToProcessorService { @InjectRepository(Payment) private readonly repository: Repository, ) {} - async execute(payment: PaymentJobData, url: string): Promise { + async execute(payment: CreatePaymentDto, url: string): Promise { const paymentData = { - amount: payment.paymentData.amount, - correlationId: payment.paymentData.correlationId, + amount: payment.amount, + correlationId: payment.correlationId, }; const response = await firstValueFrom( diff --git a/src/modules/payments/services/payments-summary.service.ts b/src/modules/payments/services/payments-summary.service.ts index ac67059..e5dafa1 100644 --- a/src/modules/payments/services/payments-summary.service.ts +++ b/src/modules/payments/services/payments-summary.service.ts @@ -2,8 +2,6 @@ import { Injectable, Logger } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Payment } from '../entities/payment.entity'; import { Repository } from 'typeorm'; -import { QueueService } from '../../queue/queue.service'; -import { PaymentStatusEnum } from '../enumns/payment-status.enum'; import { ProcessorTypeEnum } from '../enumns/processor-type.enum'; @Injectable() @@ -12,7 +10,6 @@ export class PaymentsSummaryService { constructor( @InjectRepository(Payment) private readonly repository: Repository, - private queueService: QueueService, ) {} async execute(from: string, to: string) { @@ -22,9 +19,6 @@ export class PaymentsSummaryService { .addSelect('COUNT(*)', 'totalRequests') .addSelect('SUM(payment.amount)', 'totalAmount') .where('payment.createdAt BETWEEN :from AND :to', { from, to }) - .andWhere('payment.status = :status', { - status: PaymentStatusEnum.SUCCESS, - }) .groupBy('payment.paymentProcessor'); const results = await qb.getRawMany(); diff --git a/src/modules/payments/services/payments.service.ts b/src/modules/payments/services/payments.service.ts index 74dc5af..4164684 100644 --- a/src/modules/payments/services/payments.service.ts +++ b/src/modules/payments/services/payments.service.ts @@ -16,8 +16,7 @@ export class PaymentsService { async store(createPaymentDto: CreatePaymentDto) { await this.queueService.addPaymentJob({ - paymentData: createPaymentDto, - createdAt: new Date(), + ...createPaymentDto, }); return { diff --git a/src/modules/payments/services/process-payment.service.ts b/src/modules/payments/services/process-payment.service.ts index d399334..857259b 100644 --- a/src/modules/payments/services/process-payment.service.ts +++ b/src/modules/payments/services/process-payment.service.ts @@ -1,7 +1,7 @@ import { Injectable, Logger } from '@nestjs/common'; import { PaymentDefaultProcessor } from '../processor/payment-default.processor'; import { PaymentFallbackProcessor } from '../processor/payment-fallback.processor'; -import { PaymentJobData } from '../../queue/queue.service'; +import { CreatePaymentDto } from '../dto/create-payment.dto'; @Injectable() export class ProcessPaymentService { @@ -12,7 +12,7 @@ export class ProcessPaymentService { private paymentFallbackProcessor: PaymentFallbackProcessor, ) {} - async execute(job: PaymentJobData): Promise { + async execute(job: CreatePaymentDto): Promise { const result = await this.paymentDefaultProcessor.execute(job); if (!result) await this.paymentFallbackProcessor.execute(job); }