From 6815fe6f83b95535e047c6e6ea680e76b66260c1 Mon Sep 17 00:00:00 2001 From: Vins Date: Thu, 12 Oct 2023 12:00:48 +0200 Subject: [PATCH] Removed emilBuilder sendRecap function --- src/common/emails/EmailBuilder.ts | 11 +++++++---- src/common/repositories/EmailRepository.ts | 2 +- src/services/common/CronService/CronService.ts | 6 ++++-- .../common/MailchimpService/MailchimpService.ts | 14 ++------------ 4 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/common/emails/EmailBuilder.ts b/src/common/emails/EmailBuilder.ts index 9aec7bc5..7d76d3e0 100644 --- a/src/common/emails/EmailBuilder.ts +++ b/src/common/emails/EmailBuilder.ts @@ -6,10 +6,11 @@ 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"; @Service() -export default class EmailBuilder { - public constructor(private mailchimpService: MailchimpService ,private documentsService: DocumentsService, protected variables: BackendVariables){} +export default class EmailBuilder{ + public constructor(private mailchimpService: MailchimpService ,private documentsService: DocumentsService, protected variables: BackendVariables, private usersService: UsersService){} public async sendDocumentEmails(documentEntity: Documents){ 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 => { - const to = user.contact!.email; + const to = user.contact!.email; const civility = this.getCivility(user.contact!.civility); const templateVariables = { diff --git a/src/common/repositories/EmailRepository.ts b/src/common/repositories/EmailRepository.ts index 82c9fa0f..6f1a7a45 100644 --- a/src/common/repositories/EmailRepository.ts +++ b/src/common/repositories/EmailRepository.ts @@ -26,7 +26,7 @@ export default class EmailRepository extends BaseRepository { /** * @description : Create an email */ - public async create(email: Emails): Promise { + public async create(email: Emails): Promise { const createArgs: Prisma.EmailsCreateArgs = { data: { templateName: email.templateName, diff --git a/src/services/common/CronService/CronService.ts b/src/services/common/CronService/CronService.ts index c37c6860..4b46e962 100644 --- a/src/services/common/CronService/CronService.ts +++ b/src/services/common/CronService/CronService.ts @@ -5,6 +5,7 @@ import FilesService from "../FilesService/FilesService"; import IdNotService from "../IdNotService/IdNotService"; import { PrismaClient } from "@prisma/client"; import NotificationBuilder from "@Common/notifications/NotificationBuilder"; +import EmailBuilder from "@Common/emails/EmailBuilder"; // import { PrismaClient } from "@prisma/client"; @Service() @@ -13,7 +14,8 @@ export default class CronService { private mailchimpService: MailchimpService, private filesService: FilesService, private idNotService: IdNotService, - private notificationBuilder: NotificationBuilder + private notificationBuilder: NotificationBuilder, + private emailBuilder: EmailBuilder, ) {} public async sendMails() { @@ -36,7 +38,7 @@ export default class CronService { const cronJob = new CronJob("0 20 * * FRI", async () => { // Every friday at 20:00 try { - await this.mailchimpService.sendRecapEmails(); + await this.emailBuilder.sendRecapEmails(); } catch (e) { console.error(e); } diff --git a/src/services/common/MailchimpService/MailchimpService.ts b/src/services/common/MailchimpService/MailchimpService.ts index 8eb603bf..4e73408c 100644 --- a/src/services/common/MailchimpService/MailchimpService.ts +++ b/src/services/common/MailchimpService/MailchimpService.ts @@ -4,18 +4,14 @@ import { Emails, Prisma } from "@prisma/client"; import { Service } from "typedi"; import MailchimpClient from "@mailchimp/mailchimp_transactional"; import { BackendVariables } from "@Common/config/variables/Variables"; -import UsersService from "@Services/super-admin/UsersService/UsersService"; -import EmailBuilder from "@Common/emails/EmailBuilder"; @Service() 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( private emailRepository: EmailRepository, protected variables: BackendVariables, - private usersService: UsersService, - private emailBuilder: EmailBuilder, ) { super(); } @@ -32,7 +28,7 @@ export default class MailchimpService extends BaseService { * @description : Create a new email * @throws {Error} If email cannot be created */ - public async create(emailEntity: Emails): Promise { + public async create(emailEntity: Emails): Promise { emailEntity.from = MailchimpService.from; 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); - } }