mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-19 14:20:31 +00:00
refactor: wip to nestjs
This commit is contained in:
@@ -0,0 +1,136 @@
|
||||
// import { Inject, Service } from 'typedi';
|
||||
// import Mail from '@/lib/Mail';
|
||||
// import {
|
||||
// ISaleInvoiceMailSend,
|
||||
// SaleInvoiceMailOptions,
|
||||
// SendInvoiceMailDTO,
|
||||
// } from '@/interfaces';
|
||||
// import { SaleInvoicePdf } from '../queries/SaleInvoicePdf.service';
|
||||
// import { SendSaleInvoiceMailCommon } from './SendInvoiceInvoiceMailCommon.service';
|
||||
// import { mergeAndValidateMailOptions } from '@/services/MailNotification/utils';
|
||||
// import { EventPublisher } from '@/lib/EventPublisher/EventPublisher';
|
||||
// import events from '@/subscribers/events';
|
||||
|
||||
// @Service()
|
||||
// export class SendSaleInvoiceMail {
|
||||
// @Inject()
|
||||
// private invoicePdf: SaleInvoicePdf;
|
||||
|
||||
// @Inject()
|
||||
// private invoiceMail: SendSaleInvoiceMailCommon;
|
||||
|
||||
// @Inject()
|
||||
// private eventPublisher: EventPublisher;
|
||||
|
||||
// @Inject('agenda')
|
||||
// private agenda: any;
|
||||
|
||||
// /**
|
||||
// * Sends the invoice mail of the given sale invoice.
|
||||
// * @param {number} tenantId
|
||||
// * @param {number} saleInvoiceId
|
||||
// * @param {SendInvoiceMailDTO} messageDTO
|
||||
// */
|
||||
// public async triggerMail(
|
||||
// tenantId: number,
|
||||
// saleInvoiceId: number,
|
||||
// messageOptions: SendInvoiceMailDTO
|
||||
// ) {
|
||||
// const payload = {
|
||||
// tenantId,
|
||||
// saleInvoiceId,
|
||||
// messageOptions,
|
||||
// };
|
||||
// await this.agenda.now('sale-invoice-mail-send', payload);
|
||||
|
||||
// // Triggers the event `onSaleInvoicePreMailSend`.
|
||||
// await this.eventPublisher.emitAsync(events.saleInvoice.onPreMailSend, {
|
||||
// tenantId,
|
||||
// saleInvoiceId,
|
||||
// messageOptions,
|
||||
// } as ISaleInvoiceMailSend);
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * Retrieves the formatted mail options.
|
||||
// * @param {number} tenantId
|
||||
// * @param {number} saleInvoiceId
|
||||
// * @param {SendInvoiceMailDTO} messageOptions
|
||||
// * @returns {Promise<SaleInvoiceMailOptions>}
|
||||
// */
|
||||
// async getFormattedMailOptions(
|
||||
// tenantId: number,
|
||||
// saleInvoiceId: number,
|
||||
// messageOptions: SendInvoiceMailDTO
|
||||
// ): Promise<SaleInvoiceMailOptions> {
|
||||
// const defaultMessageOptions = await this.invoiceMail.getInvoiceMailOptions(
|
||||
// tenantId,
|
||||
// saleInvoiceId
|
||||
// );
|
||||
// // Merges message options with default options and parses the options values.
|
||||
// const parsedMessageOptions = mergeAndValidateMailOptions(
|
||||
// defaultMessageOptions,
|
||||
// messageOptions
|
||||
// );
|
||||
// return this.invoiceMail.formatInvoiceMailOptions(
|
||||
// tenantId,
|
||||
// saleInvoiceId,
|
||||
// parsedMessageOptions
|
||||
// );
|
||||
// }
|
||||
|
||||
// /**
|
||||
// * Triggers the mail invoice.
|
||||
// * @param {number} tenantId
|
||||
// * @param {number} saleInvoiceId
|
||||
// * @param {SendInvoiceMailDTO} messageDTO
|
||||
// * @returns {Promise<void>}
|
||||
// */
|
||||
// public async sendMail(
|
||||
// tenantId: number,
|
||||
// saleInvoiceId: number,
|
||||
// messageOptions: SendInvoiceMailDTO
|
||||
// ) {
|
||||
// const formattedMessageOptions = await this.getFormattedMailOptions(
|
||||
// tenantId,
|
||||
// saleInvoiceId,
|
||||
// messageOptions
|
||||
// );
|
||||
// const mail = new Mail()
|
||||
// .setSubject(formattedMessageOptions.subject)
|
||||
// .setTo(formattedMessageOptions.to)
|
||||
// .setCC(formattedMessageOptions.cc)
|
||||
// .setBCC(formattedMessageOptions.bcc)
|
||||
// .setContent(formattedMessageOptions.message);
|
||||
|
||||
// // Attach invoice document.
|
||||
// if (formattedMessageOptions.attachInvoice) {
|
||||
// // Retrieves document buffer of the invoice pdf document.
|
||||
// const [invoicePdfBuffer, invoiceFilename] =
|
||||
// await this.invoicePdf.saleInvoicePdf(tenantId, saleInvoiceId);
|
||||
|
||||
// mail.setAttachments([
|
||||
// { filename: `${invoiceFilename}.pdf`, content: invoicePdfBuffer },
|
||||
// ]);
|
||||
// }
|
||||
// const eventPayload = {
|
||||
// tenantId,
|
||||
// saleInvoiceId,
|
||||
// messageOptions,
|
||||
// formattedMessageOptions,
|
||||
// } as ISaleInvoiceMailSend;
|
||||
|
||||
// // Triggers the event `onSaleInvoiceSend`.
|
||||
// await this.eventPublisher.emitAsync(
|
||||
// events.saleInvoice.onMailSend,
|
||||
// eventPayload
|
||||
// );
|
||||
// await mail.send();
|
||||
|
||||
// // Triggers the event `onSaleInvoiceSend`.
|
||||
// await this.eventPublisher.emitAsync(
|
||||
// events.saleInvoice.onMailSent,
|
||||
// eventPayload
|
||||
// );
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user