chore: template phase 2

This commit is contained in:
mahyargdz
2025-07-14 16:59:23 +03:30
parent 513980fe3a
commit 60d29f8e93
5 changed files with 67 additions and 128 deletions
+2 -3
View File
@@ -10,7 +10,6 @@ import { MailboxResolverService } from "./services/mailbox-resolver.service";
import { WebSocketAuthService } from "./services/websocket-auth.service";
import { jwtConfig } from "../../configs/jwt.config";
import { MailServerModule } from "../mail-server/mail-server.module";
import { TemplateProcessorService } from "../templates/services/template-processor.service";
import { TemplatesModule } from "../templates/templates.module";
import { User } from "../users/entities/user.entity";
import { UsersModule } from "../users/users.module";
@@ -18,7 +17,7 @@ import { UsersModule } from "../users/users.module";
@Module({
imports: [MailServerModule, UsersModule, TemplatesModule, JwtModule.registerAsync(jwtConfig()), MikroOrmModule.forFeature([User])],
controllers: [EmailController],
providers: [EmailService, MailboxResolverService, EmailGateway, EmailNotificationService, WebSocketAuthService, TemplateProcessorService],
exports: [EmailService, MailboxResolverService, EmailGateway, EmailNotificationService, WebSocketAuthService, TemplateProcessorService],
providers: [EmailService, MailboxResolverService, EmailGateway, EmailNotificationService, WebSocketAuthService],
exports: [EmailService, MailboxResolverService, EmailGateway, EmailNotificationService, WebSocketAuthService],
})
export class EmailModule {}
+16 -6
View File
@@ -37,15 +37,20 @@ export class EmailService {
this.logger.log(`Processing email through business template for business: ${user.business.id}`);
// Process email content through business template
const processedTemplate = await this.templateProcessorService.processEmailWithTemplate(user.business.id, {
const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, {
text: sendEmailDto.text,
html: sendEmailDto.html,
subject: sendEmailDto.subject,
});
// Update the DTO with processed content
sendEmailDto.html = processedTemplate.html;
sendEmailDto.text = processedTemplate.text;
if (processedTemplate.isHtml) {
sendEmailDto.html = processedTemplate.content;
sendEmailDto.text = undefined; // Clear text when using HTML template
} else {
sendEmailDto.text = processedTemplate.content;
sendEmailDto.html = undefined; // Clear HTML when no template
}
if (processedTemplate.hasTemplate) {
this.logger.log(`Email content processed through template for business: ${user.business.id}`);
@@ -410,14 +415,19 @@ export class EmailService {
const user = await this.userRepository.findOne({ wildduckUserId: userEmailId, deletedAt: null }, { populate: ["business"] });
if (user && user.business && (updateDraftDto.text || updateDraftDto.html)) {
const processedTemplate = await this.templateProcessorService.processEmailWithTemplate(user.business.id, {
const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, {
text: updateDraftDto.text,
html: updateDraftDto.html,
subject: updateDraftDto.subject,
});
draftData.html = processedTemplate.html;
draftData.text = processedTemplate.text;
if (processedTemplate.isHtml) {
draftData.html = processedTemplate.content;
draftData.text = undefined;
} else {
draftData.text = processedTemplate.content;
draftData.html = undefined;
}
if (processedTemplate.hasTemplate) {
this.logger.log(`Draft content processed through template for business: ${user.business.id}`);