Recap customer email ready
This commit is contained in:
parent
d279a49cb2
commit
4b6f2da89b
@ -1,11 +1,13 @@
|
||||
import DocumentsService from "@Services/super-admin/DocumentsService/DocumentsService";
|
||||
import { Documents } from "@prisma/client";
|
||||
import User, { Document } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import Customer, { Document } from "le-coffre-resources/dist/SuperAdmin";
|
||||
import { Service } from "typedi";
|
||||
import { ETemplates } from "./Templates/EmailTemplates";
|
||||
import MailchimpService from "@Services/common/MailchimpService/MailchimpService";
|
||||
import { BackendVariables } from "@Common/config/variables/Variables";
|
||||
import UsersService from "@Services/super-admin/UsersService/UsersService";
|
||||
import User from "le-coffre-resources/dist/SuperAdmin";
|
||||
import CustomersService from "@Services/super-admin/CustomersService/CustomersService";
|
||||
|
||||
@Service()
|
||||
export default class EmailBuilder {
|
||||
@ -14,6 +16,7 @@ export default class EmailBuilder {
|
||||
private documentsService: DocumentsService,
|
||||
protected variables: BackendVariables,
|
||||
private usersService: UsersService,
|
||||
private customerService: CustomersService,
|
||||
) {}
|
||||
|
||||
public async sendDocumentEmails(documentEntity: Documents) {
|
||||
@ -102,6 +105,50 @@ export default class EmailBuilder {
|
||||
});
|
||||
}
|
||||
|
||||
public async sendRecapEmailsCustomers() {
|
||||
const customersToEmailEntities = await this.customerService.get({
|
||||
where:{
|
||||
documents: {
|
||||
some: {
|
||||
document_status: "ASKED"
|
||||
}
|
||||
}
|
||||
},
|
||||
distinct: ["uid"],
|
||||
include: { contact: true },
|
||||
});
|
||||
|
||||
const customersToEmail = Customer.hydrateArray<Customer>(customersToEmailEntities, { strategy: "excludeAll" });
|
||||
console.log(customersToEmail);
|
||||
|
||||
|
||||
// customersToEmail.forEach((customer) => {
|
||||
// const to = customer.contact!.email;
|
||||
|
||||
// const templateVariables = {
|
||||
// last_name: customer.contact!.last_name,
|
||||
// link: this.variables.APP_HOST,
|
||||
// };
|
||||
|
||||
// const templateName = ETemplates.DOCUMENT_RECAP;
|
||||
// const subject = "Il vous reste des documents à déposer pour votre dossier";
|
||||
|
||||
// this.mailchimpService.create({
|
||||
// templateName,
|
||||
// to,
|
||||
// subject,
|
||||
// templateVariables,
|
||||
// uid: "",
|
||||
// from: null,
|
||||
// cc: [],
|
||||
// cci: [],
|
||||
// sentAt: null,
|
||||
// nbTrySend: null,
|
||||
// lastTrySendDate: null,
|
||||
// });
|
||||
// });
|
||||
}
|
||||
|
||||
public getCivility(civility: string) {
|
||||
if (civility === "MALE") return "Mr";
|
||||
else return "Mme";
|
||||
|
@ -15,7 +15,8 @@ import CronService from "@Services/common/CronService/CronService";
|
||||
Container.get(CronService).checkDocumentsExpiration();
|
||||
if (variables.ENV !== "dev") {
|
||||
Container.get(CronService).sendMails();
|
||||
Container.get(CronService).sendRecapMails();
|
||||
Container.get(CronService).sendRecapMailsCustomers();
|
||||
Container.get(CronService).sendRecapMailsClient();
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
@ -36,11 +36,27 @@ export default class CronService {
|
||||
}
|
||||
}
|
||||
|
||||
public async sendRecapMails() {
|
||||
public async sendRecapMailsCustomers() {
|
||||
const cronJob = new CronJob("0 20 * * FRI", async () => {
|
||||
// Every friday at 20:00
|
||||
try {
|
||||
await this.emailBuilder.sendRecapEmails();
|
||||
await this.emailBuilder.sendRecapEmailsCustomers();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
|
||||
// Start job
|
||||
if (!cronJob.running) {
|
||||
cronJob.start();
|
||||
}
|
||||
}
|
||||
|
||||
public async sendRecapMailsClient() {
|
||||
const cronJob = new CronJob("0 20 * * FRI", async () => {
|
||||
// Every friday at 20:00
|
||||
try {
|
||||
await this.emailBuilder.sendRecapEmailsCustomers();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user