Removed MailchimpService sendRecap function -> Email builder (#145)
This commit is contained in:
commit
5643a8ffe7
@ -6,10 +6,11 @@ import { Service } from "typedi";
|
|||||||
import { ETemplates } from "./Templates/EmailTemplates";
|
import { ETemplates } from "./Templates/EmailTemplates";
|
||||||
import MailchimpService from "@Services/common/MailchimpService/MailchimpService";
|
import MailchimpService from "@Services/common/MailchimpService/MailchimpService";
|
||||||
import { BackendVariables } from "@Common/config/variables/Variables";
|
import { BackendVariables } from "@Common/config/variables/Variables";
|
||||||
|
import UsersService from "@Services/super-admin/UsersService/UsersService";
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class EmailBuilder {
|
export default class EmailBuilder{
|
||||||
public constructor(private mailchimpService: MailchimpService ,private documentsService: DocumentsService, protected variables: BackendVariables){}
|
public constructor(private mailchimpService: MailchimpService ,private documentsService: DocumentsService, protected variables: BackendVariables, private usersService: UsersService){}
|
||||||
|
|
||||||
public async sendDocumentEmails(documentEntity: Documents){
|
public async sendDocumentEmails(documentEntity: Documents){
|
||||||
if(documentEntity.document_status !== "ASKED" && documentEntity.document_status !== "REFUSED") return;
|
if(documentEntity.document_status !== "ASKED" && documentEntity.document_status !== "REFUSED") return;
|
||||||
@ -53,9 +54,11 @@ export default class EmailBuilder {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendRecapEmails(usersToEmail: User[]){
|
public async sendRecapEmails(){
|
||||||
|
const usersToEmail : User[] = await this.usersService.get({ where: { office_folders: { some:{ documents: { some: { document_status: "DEPOSITED" } } }} }, distinct: ["uid"], include: { contact: true } });
|
||||||
|
|
||||||
usersToEmail.forEach(user => {
|
usersToEmail.forEach(user => {
|
||||||
const to = user.contact!.email;
|
const to = user.contact!.email;
|
||||||
const civility = this.getCivility(user.contact!.civility);
|
const civility = this.getCivility(user.contact!.civility);
|
||||||
|
|
||||||
const templateVariables = {
|
const templateVariables = {
|
||||||
|
@ -26,7 +26,7 @@ export default class EmailRepository extends BaseRepository {
|
|||||||
/**
|
/**
|
||||||
* @description : Create an email
|
* @description : Create an email
|
||||||
*/
|
*/
|
||||||
public async create(email: Emails): Promise<Emails> {
|
public async create(email: Emails): Promise<Emails> {
|
||||||
const createArgs: Prisma.EmailsCreateArgs = {
|
const createArgs: Prisma.EmailsCreateArgs = {
|
||||||
data: {
|
data: {
|
||||||
templateName: email.templateName,
|
templateName: email.templateName,
|
||||||
|
@ -5,6 +5,7 @@ import FilesService from "../FilesService/FilesService";
|
|||||||
import IdNotService from "../IdNotService/IdNotService";
|
import IdNotService from "../IdNotService/IdNotService";
|
||||||
import { PrismaClient } from "@prisma/client";
|
import { PrismaClient } from "@prisma/client";
|
||||||
import NotificationBuilder from "@Common/notifications/NotificationBuilder";
|
import NotificationBuilder from "@Common/notifications/NotificationBuilder";
|
||||||
|
import EmailBuilder from "@Common/emails/EmailBuilder";
|
||||||
// import { PrismaClient } from "@prisma/client";
|
// import { PrismaClient } from "@prisma/client";
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
@ -13,7 +14,8 @@ export default class CronService {
|
|||||||
private mailchimpService: MailchimpService,
|
private mailchimpService: MailchimpService,
|
||||||
private filesService: FilesService,
|
private filesService: FilesService,
|
||||||
private idNotService: IdNotService,
|
private idNotService: IdNotService,
|
||||||
private notificationBuilder: NotificationBuilder
|
private notificationBuilder: NotificationBuilder,
|
||||||
|
private emailBuilder: EmailBuilder,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
public async sendMails() {
|
public async sendMails() {
|
||||||
@ -36,7 +38,7 @@ export default class CronService {
|
|||||||
const cronJob = new CronJob("0 20 * * FRI", async () => {
|
const cronJob = new CronJob("0 20 * * FRI", async () => {
|
||||||
// Every friday at 20:00
|
// Every friday at 20:00
|
||||||
try {
|
try {
|
||||||
await this.mailchimpService.sendRecapEmails();
|
await this.emailBuilder.sendRecapEmails();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}
|
}
|
||||||
|
@ -4,18 +4,14 @@ import { Emails, Prisma } from "@prisma/client";
|
|||||||
import { Service } from "typedi";
|
import { Service } from "typedi";
|
||||||
import MailchimpClient from "@mailchimp/mailchimp_transactional";
|
import MailchimpClient from "@mailchimp/mailchimp_transactional";
|
||||||
import { BackendVariables } from "@Common/config/variables/Variables";
|
import { BackendVariables } from "@Common/config/variables/Variables";
|
||||||
import UsersService from "@Services/super-admin/UsersService/UsersService";
|
|
||||||
import EmailBuilder from "@Common/emails/EmailBuilder";
|
|
||||||
|
|
||||||
@Service()
|
@Service()
|
||||||
export default class MailchimpService extends BaseService {
|
export default class MailchimpService extends BaseService {
|
||||||
private static readonly from = "vincent.alamelle@smart-chain.fr";
|
private static readonly from = "no-reply@smart-chain.fr";
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private emailRepository: EmailRepository,
|
private emailRepository: EmailRepository,
|
||||||
protected variables: BackendVariables,
|
protected variables: BackendVariables,
|
||||||
private usersService: UsersService,
|
|
||||||
private emailBuilder: EmailBuilder,
|
|
||||||
) {
|
) {
|
||||||
super();
|
super();
|
||||||
}
|
}
|
||||||
@ -32,7 +28,7 @@ export default class MailchimpService extends BaseService {
|
|||||||
* @description : Create a new email
|
* @description : Create a new email
|
||||||
* @throws {Error} If email cannot be created
|
* @throws {Error} If email cannot be created
|
||||||
*/
|
*/
|
||||||
public async create(emailEntity: Emails): Promise<Emails> {
|
public async create(emailEntity: Emails): Promise<Emails> {
|
||||||
emailEntity.from = MailchimpService.from;
|
emailEntity.from = MailchimpService.from;
|
||||||
return this.emailRepository.create(emailEntity);
|
return this.emailRepository.create(emailEntity);
|
||||||
}
|
}
|
||||||
@ -120,10 +116,4 @@ export default class MailchimpService extends BaseService {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async sendRecapEmails() {
|
|
||||||
const usersToEmail = await this.usersService.get({ where: { office_folders: { some:{ documents: { some: { document_status: "DEPOSITED" } } }} }, distinct: ["uid"], include: { contact: true } });
|
|
||||||
|
|
||||||
await this.emailBuilder.sendRecapEmails(usersToEmail);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user