From ca59ed74dd3b02d477d360e669ed62f42196772e Mon Sep 17 00:00:00 2001 From: David Arranz Date: Tue, 1 Oct 2024 19:25:59 +0200 Subject: [PATCH] . --- client/src/components/Layout/LayoutHeader.tsx | 1 + server/src/config/environments/development.ts | 12 +++++++- .../nodemailer/BrevoMailService.ts | 13 +++------ .../application/SendIncidence.useCase.ts | 28 ++++++++++++------- 4 files changed, 34 insertions(+), 20 deletions(-) diff --git a/client/src/components/Layout/LayoutHeader.tsx b/client/src/components/Layout/LayoutHeader.tsx index a8a3dd1..032b66d 100644 --- a/client/src/components/Layout/LayoutHeader.tsx +++ b/client/src/components/Layout/LayoutHeader.tsx @@ -41,6 +41,7 @@ export const LayoutHeader = () => { {mainMenu.map((menuItem) => ( { + async sendMail(mailOptions: ISendEmailOptions, dry?: boolean): Promise { if (dry) { // No enviar el email new LoggerMailService().sendMail(mailOptions); return; } - await this.transporter.sendMail({ + const transporter = nodemailer.createTransport(config.nodemailer.brevo); + + return await transporter.sendMail({ ...mailOptions, attachments: mailOptions.attachments?.map((att) => ({ filename: att.filename, diff --git a/server/src/contexts/support/application/SendIncidence.useCase.ts b/server/src/contexts/support/application/SendIncidence.useCase.ts index 1edb34e..a60642e 100644 --- a/server/src/contexts/support/application/SendIncidence.useCase.ts +++ b/server/src/contexts/support/application/SendIncidence.useCase.ts @@ -14,6 +14,7 @@ import { UniqueID, } from "@shared/contexts"; +import { IInfrastructureError } from "@/contexts/common/infrastructure"; import { Dealer } from "@/contexts/sales/domain"; import { Incidence } from "../domain"; import { ISupportContext } from "../infrastructure"; @@ -80,17 +81,24 @@ export class SendIncidenceUseCase const incidence = incidenceOrError.object; - this._context.services?.emailService.sendMail({ - from: { - name: user.name.toString(), - address: user.email.toString(), - }, - to: this._context.defaults.support.from, - subject: this._context.defaults.support.subject, - html: incidence.description.toString(), - }); + try { + const sendInfo = await this._context.services?.emailService.sendMail({ + from: { + name: user.name.toString(), + address: user.email.toString(), + }, + to: this._context.defaults.support.from, + subject: this._context.defaults.support.subject, + html: incidence.description.toString(), + }); - return Result.ok(); + console.log(sendInfo); + + return Result.ok(); + } catch (error: unknown) { + const _error = error as IInfrastructureError; + return Result.fail(UseCaseError.create(UseCaseError.UNEXCEPTED_ERROR, _error.message)); + } } private _tryIncidenceInstance(