mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 12:20:31 +00:00
45 lines
1.3 KiB
TypeScript
45 lines
1.3 KiB
TypeScript
import { JOB_REF, Process, Processor } from '@nestjs/bull';
|
|
import { Job } from 'bull';
|
|
import { Inject, Scope } from '@nestjs/common';
|
|
import { ClsService, UseCls } from 'nestjs-cls';
|
|
import {
|
|
SEND_PAYMENT_RECEIVED_MAIL_JOB,
|
|
SEND_PAYMENT_RECEIVED_MAIL_QUEUE,
|
|
} from '../constants';
|
|
import { SendPaymentReceiveMailNotification } from '../commands/PaymentReceivedMailNotification';
|
|
import { SendPaymentReceivedMailPayload } from '../types/PaymentReceived.types';
|
|
|
|
@Processor({
|
|
name: SEND_PAYMENT_RECEIVED_MAIL_QUEUE,
|
|
scope: Scope.REQUEST,
|
|
})
|
|
export class SendPaymentReceivedMailProcessor {
|
|
constructor(
|
|
private readonly sendPaymentReceivedMail: SendPaymentReceiveMailNotification,
|
|
private readonly clsService: ClsService,
|
|
|
|
@Inject(JOB_REF)
|
|
private readonly jobRef: Job<SendPaymentReceivedMailPayload>,
|
|
) { }
|
|
|
|
@Process(SEND_PAYMENT_RECEIVED_MAIL_JOB)
|
|
@UseCls()
|
|
async handleSendMail() {
|
|
const { messageOptions, paymentReceivedId, organizationId, userId } =
|
|
this.jobRef.data;
|
|
|
|
this.clsService.set('organizationId', organizationId);
|
|
this.clsService.set('userId', userId);
|
|
|
|
try {
|
|
await this.sendPaymentReceivedMail.sendMail(
|
|
paymentReceivedId,
|
|
messageOptions,
|
|
);
|
|
} catch (error) {
|
|
console.error('Failed to process payment received mail job:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
}
|