diff --git a/src/common/emails/EmailBuilder.ts b/src/common/emails/EmailBuilder.ts index bb41d029..9aec7bc5 100644 --- a/src/common/emails/EmailBuilder.ts +++ b/src/common/emails/EmailBuilder.ts @@ -17,6 +17,11 @@ export default class EmailBuilder { const documentPrisma = await this.documentsService.getByUid(documentEntity.uid, { depositor: {include: {contact: true}}, folder:{include:{ office: true}} }); if(!documentPrisma) throw new Error("Document not found"); const document = Document.hydrate(documentPrisma); + + //Use mailchimpService.get get if an email was sent to the user in the lst hour + const lastEmail = await this.mailchimpService.get({ where: { to: document.depositor!.contact!.email, sentAt: { gte: new Date(Date.now() - 3600000) } } }); + if(lastEmail.length > 0) return; + const to = document.depositor!.contact!.email; const civility = this.getCivility(document.depositor!.contact!.civility); const templateVariables = { diff --git a/src/services/common/MailchimpService/MailchimpService.ts b/src/services/common/MailchimpService/MailchimpService.ts index 8f9f5f5e..8eb603bf 100644 --- a/src/services/common/MailchimpService/MailchimpService.ts +++ b/src/services/common/MailchimpService/MailchimpService.ts @@ -1,6 +1,6 @@ import EmailRepository from "@Repositories/EmailRepository"; import BaseService from "@Services/BaseService"; -import { Emails } from "@prisma/client"; +import { Emails, Prisma } from "@prisma/client"; import { Service } from "typedi"; import MailchimpClient from "@mailchimp/mailchimp_transactional"; import { BackendVariables } from "@Common/config/variables/Variables"; @@ -24,7 +24,7 @@ export default class MailchimpService extends BaseService { * @description : Get all emails * @throws {Error} If emails cannot be get */ - public async get(query: any): Promise { + public async get(query: Prisma.EmailsFindManyArgs): Promise { return this.emailRepository.findMany(query); }