update: new draft logic

This commit is contained in:
mahyargdz
2025-08-04 15:58:36 +03:30
parent 6e2aba7db0
commit f8fcb7512c
+45 -20
View File
@@ -10,6 +10,7 @@ import { EmailMessage } from "../../../common/enums/message.enum";
import { EmailNotificationService } from "../../email-utils/services/email-notification.service";
import { MailboxResolverService } from "../../email-utils/services/mailbox-resolver.service";
import { SearchMessagesMailServerQueryDto } from "../../mail-server/DTO/message.dto";
import { MessageHeaders } from "../../mail-server/interfaces/messages-response.interface";
import { MailServerService } from "../../mail-server/services/mail-server.service";
import { TemplateProcessorService } from "../../templates/services/template-processor.service";
import { User } from "../../users/entities/user.entity";
@@ -501,29 +502,29 @@ export class EmailService {
uploadOnly: true,
};
const user = await this.userRepository.findOne({ wildduckUserId, deletedAt: null }, { populate: ["business"] });
// const user = await this.userRepository.findOne({ wildduckUserId, deletedAt: null }, { populate: ["business"] });
if (user && user.business && (updateDraftDto.text || updateDraftDto.html)) {
const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, user.id, {
text: updateDraftDto.text!,
html: updateDraftDto.html!,
subject: updateDraftDto.subject,
});
// if (user && user.business && (updateDraftDto.text || updateDraftDto.html)) {
// const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, user.id, {
// text: updateDraftDto.text!,
// html: updateDraftDto.html!,
// subject: updateDraftDto.subject,
// });
if (processedTemplate.isHtml) {
draftData.html = processedTemplate.content;
draftData.text = "";
} else {
draftData.text = processedTemplate.content;
draftData.html = "";
}
// if (processedTemplate.isHtml) {
// draftData.html = processedTemplate.content;
// draftData.text = "";
// } else {
// draftData.text = processedTemplate.content;
// draftData.html = "";
// }
const headers = this.generateHeadersForEmailType(user, {
html: draftData.html,
text: draftData.text,
});
draftData.headers = [...(draftData.headers || []), ...headers];
}
// const headers = this.generateHeadersForEmailType(user, {
// html: draftData.html,
// text: draftData.text,
// });
// draftData.headers = [...(draftData.headers || []), ...headers];
// }
const response = await firstValueFrom(this.mailServerService.submission.submitMessage(wildduckUserId, draftData as SendEmailDto));
@@ -540,6 +541,30 @@ export class EmailService {
const message = await firstValueFrom(this.mailServerService.messages.getMessage(wildduckUserId, draftsMailboxId, messageId));
const user = await this.userRepository.findOne({ wildduckUserId, deletedAt: null }, { populate: ["business"] });
if (!user) throw new BadRequestException(EmailMessage.USER_NOT_FOUND);
const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, user.id, {
text: message.text || "",
html: message.html?.[0] || "",
subject: message.subject,
});
if (processedTemplate.isHtml) {
message.html = [processedTemplate.content];
message.text = "";
} else {
message.text = processedTemplate.content;
message.html = [];
}
const headers = this.generateHeadersForEmailType(user, {
html: message.html?.[0] || "",
text: message.text || "",
});
message.headers = { ...message.headers, ...headers } as unknown as MessageHeaders;
const result = await firstValueFrom(
this.mailServerService.messages.submitDraft(wildduckUserId, draftsMailboxId, messageId, { deleteFiles: false }),
);