update: new draft logic
This commit is contained in:
@@ -10,6 +10,7 @@ import { EmailMessage } from "../../../common/enums/message.enum";
|
|||||||
import { EmailNotificationService } from "../../email-utils/services/email-notification.service";
|
import { EmailNotificationService } from "../../email-utils/services/email-notification.service";
|
||||||
import { MailboxResolverService } from "../../email-utils/services/mailbox-resolver.service";
|
import { MailboxResolverService } from "../../email-utils/services/mailbox-resolver.service";
|
||||||
import { SearchMessagesMailServerQueryDto } from "../../mail-server/DTO/message.dto";
|
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 { MailServerService } from "../../mail-server/services/mail-server.service";
|
||||||
import { TemplateProcessorService } from "../../templates/services/template-processor.service";
|
import { TemplateProcessorService } from "../../templates/services/template-processor.service";
|
||||||
import { User } from "../../users/entities/user.entity";
|
import { User } from "../../users/entities/user.entity";
|
||||||
@@ -501,29 +502,29 @@ export class EmailService {
|
|||||||
uploadOnly: true,
|
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)) {
|
// if (user && user.business && (updateDraftDto.text || updateDraftDto.html)) {
|
||||||
const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, user.id, {
|
// const processedTemplate = await this.templateProcessorService.processEmailContent(user.business.id, user.id, {
|
||||||
text: updateDraftDto.text!,
|
// text: updateDraftDto.text!,
|
||||||
html: updateDraftDto.html!,
|
// html: updateDraftDto.html!,
|
||||||
subject: updateDraftDto.subject,
|
// subject: updateDraftDto.subject,
|
||||||
});
|
// });
|
||||||
|
|
||||||
if (processedTemplate.isHtml) {
|
// if (processedTemplate.isHtml) {
|
||||||
draftData.html = processedTemplate.content;
|
// draftData.html = processedTemplate.content;
|
||||||
draftData.text = "";
|
// draftData.text = "";
|
||||||
} else {
|
// } else {
|
||||||
draftData.text = processedTemplate.content;
|
// draftData.text = processedTemplate.content;
|
||||||
draftData.html = "";
|
// draftData.html = "";
|
||||||
}
|
// }
|
||||||
|
|
||||||
const headers = this.generateHeadersForEmailType(user, {
|
// const headers = this.generateHeadersForEmailType(user, {
|
||||||
html: draftData.html,
|
// html: draftData.html,
|
||||||
text: draftData.text,
|
// text: draftData.text,
|
||||||
});
|
// });
|
||||||
draftData.headers = [...(draftData.headers || []), ...headers];
|
// draftData.headers = [...(draftData.headers || []), ...headers];
|
||||||
}
|
// }
|
||||||
|
|
||||||
const response = await firstValueFrom(this.mailServerService.submission.submitMessage(wildduckUserId, draftData as SendEmailDto));
|
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 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(
|
const result = await firstValueFrom(
|
||||||
this.mailServerService.messages.submitDraft(wildduckUserId, draftsMailboxId, messageId, { deleteFiles: false }),
|
this.mailServerService.messages.submitDraft(wildduckUserId, draftsMailboxId, messageId, { deleteFiles: false }),
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user