From db66431a5f88c5279549348ab89c52a87c9e2c83 Mon Sep 17 00:00:00 2001 From: mahyargdz Date: Wed, 16 Jul 2025 09:47:38 +0330 Subject: [PATCH] chore: change the email header --- src/modules/email/DTO/send-email.dto.ts | 8 ++++---- src/modules/email/email.controller.ts | 10 ++-------- src/modules/email/services/email.service.ts | 19 ++++++++----------- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/src/modules/email/DTO/send-email.dto.ts b/src/modules/email/DTO/send-email.dto.ts index 70c56e8..833b775 100644 --- a/src/modules/email/DTO/send-email.dto.ts +++ b/src/modules/email/DTO/send-email.dto.ts @@ -108,10 +108,10 @@ export class EmailEnvelopeDto { //######################################################## export class SendEmailDto { - @IsNotEmpty({ message: EmailMessage.FROM_ADDRESS_REQUIRED }) - @ValidateNested() - @Type(() => EmailRecipientDto) - @ApiProperty({ description: "Address for the From: header" }) + // @IsNotEmpty({ message: EmailMessage.FROM_ADDRESS_REQUIRED }) + // @ValidateNested() + // @Type(() => EmailRecipientDto) + // @ApiProperty({ description: "Address for the From: header" }) from: EmailRecipientDto; @IsOptional() diff --git a/src/modules/email/email.controller.ts b/src/modules/email/email.controller.ts index 5291d31..57c36b4 100644 --- a/src/modules/email/email.controller.ts +++ b/src/modules/email/email.controller.ts @@ -8,7 +8,6 @@ import { SearchMessagesQueryDto } from "./DTO/email-query.dto"; import { SendEmailDto, UpdateDraftDto } from "./DTO/send-email.dto"; import { EmailService } from "./services/email.service"; import { AuthGuards } from "../../common/decorators/auth-guard.decorator"; -import { BusinessDec } from "../../common/decorators/business.decorator"; import { UserDec } from "../../common/decorators/user.decorator"; @AuthGuards() @@ -25,13 +24,8 @@ export class EmailController { @ApiResponse({ status: 201, description: "Email sent successfully" }) @ApiResponse({ status: 400, description: "Invalid email data or missing required fields for email type" }) @ApiResponse({ status: 403, description: "Not authorized to send email" }) - sendEmail( - @UserDec("wildduckUserId") userEmailId: string, - @BusinessDec("id") businessId: string, - @UserDec("id") userId: string, - @Body() sendEmailDto: SendEmailDto, - ) { - return this.emailService.sendEmail(userEmailId, businessId, userId, sendEmailDto); + sendEmail(@UserDec("wildduckUserId") userEmailId: string, @UserDec("id") userId: string, @Body() sendEmailDto: SendEmailDto) { + return this.emailService.sendEmail(userEmailId, userId, sendEmailDto); } @Get("status/:queueId") diff --git a/src/modules/email/services/email.service.ts b/src/modules/email/services/email.service.ts index 41a3c66..fc53682 100644 --- a/src/modules/email/services/email.service.ts +++ b/src/modules/email/services/email.service.ts @@ -30,35 +30,32 @@ export class EmailService { ) {} //######################################################## - async sendEmail(userEmailId: string, businessId: string, userId: string, sendEmailDto: SendEmailDto) { + async sendEmail(userEmailId: string, userId: string, sendEmailDto: SendEmailDto) { this.logger.log(`Sending ${EmailType.GENERAL} email from user ${userEmailId} to ${sendEmailDto.to.map((t) => t.address).join(", ")}`); try { - this.logger.log(`Processing email through business template for business: ${businessId}`); + const user = await this.userRepository.findOne({ wildduckUserId: userEmailId, deletedAt: null }, { populate: ["business"] }); + if (!user) throw new BadRequestException(EmailMessage.USER_NOT_FOUND); + this.logger.log(`Processing email through business template for business: ${user.business.id}`); - // Process email content through business template - const processedTemplate = await this.templateProcessorService.processEmailContent(businessId, userId, { + const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, userId, { text: sendEmailDto.text, html: sendEmailDto.html, subject: sendEmailDto.subject, }); - // Update the DTO with processed content if (processedTemplate.isHtml) { sendEmailDto.html = processedTemplate.content; - sendEmailDto.text = undefined; // Clear text when using HTML template + sendEmailDto.text = undefined; } else { sendEmailDto.text = processedTemplate.content; - sendEmailDto.html = undefined; // Clear HTML when no template + sendEmailDto.html = undefined; } if (processedTemplate.hasTemplate) { - this.logger.log(`Email content processed through template for business: ${businessId}`); + this.logger.log(`Email content processed through template for business: ${user.business.id}`); } - const user = await this.userRepository.findOne({ wildduckUserId: userEmailId, deletedAt: null, business: { id: businessId } }); - if (!user) throw new BadRequestException(EmailMessage.USER_NOT_FOUND); - sendEmailDto.from = { address: user.emailAddress, name: user.displayName,