diff --git a/src/modules/payments/services/make-payment-to-processor.service.ts b/src/modules/payments/services/make-payment-to-processor.service.ts new file mode 100644 index 0000000..cd5f341 --- /dev/null +++ b/src/modules/payments/services/make-payment-to-processor.service.ts @@ -0,0 +1,31 @@ +import { Injectable, Logger } from '@nestjs/common'; +import { firstValueFrom } from 'rxjs'; +import { HttpService } from '@nestjs/axios'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Payment } from '../entities/payment.entity'; +import { Repository } from 'typeorm'; + +@Injectable() +export class MakePaymentToProcessorService { + private readonly logger = new Logger(MakePaymentToProcessorService.name); + + constructor( + private readonly httpService: HttpService, + @InjectRepository(Payment) private readonly repository: Repository, + ) {} + + async execute(payment: Payment, url: string): Promise { + const paymentData = { + amount: payment.amount, + correlationId: payment.correlationId, + }; + + const response = await firstValueFrom( + this.httpService.post(`${url}/payments`, paymentData, { + timeout: 2000, // 30 segundos + }), + ); + + return response.status === 200; + } +}