Removed emilBuilder sendRecap function

This commit is contained in:
Vins 2023-10-12 12:00:48 +02:00
parent 8f7367eb63
commit 6815fe6f83
4 changed files with 14 additions and 19 deletions

View File

@ -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 = {

View File

@ -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,

View File

@ -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);
} }

View File

@ -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);
}
} }