From e94d2deadef44fa71f3592e6a8cbbe278b379d8e Mon Sep 17 00:00:00 2001 From: Vins Date: Wed, 4 Oct 2023 08:54:48 +0200 Subject: [PATCH] Customers emails limited --- src/common/emails/EmailBuilder.ts | 5 +++++ src/services/common/MailchimpService/MailchimpService.ts | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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); }