Skip to content

Commit ebfbdd8

Browse files
committed
feat: improve perf
1 parent 0b661ec commit ebfbdd8

File tree

2 files changed

+33
-25
lines changed

2 files changed

+33
-25
lines changed

back/api/campaign/services/campaign.js

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -139,18 +139,19 @@ module.exports = {
139139
)
140140
},
141141
async sendEspacePreselectionEmail(campaignId) {
142-
const campaign = await strapi.services.campaign.findOne({ id: campaignId })
142+
const campaign = await strapi.services.campaign.findOne({ id: campaignId }, ['applications.espace.users_permissions_user', 'applications.company'])
143143
const today = new Date()
144144

145145
if (Boolean(campaign?.confirmation_notification_date)) {
146146
const selectionNotificationDate = new Date(campaign.confirmation_notification_date)
147+
147148
if (selectionNotificationDate.toDateString() === today.toDateString()) {
148149
const placesMap = {}
149150

150151
for (const application of campaign.applications) {
151-
const espace = await strapi.services.espace.findOne({ id: application.espace })
152+
const espace = application.espace
153+
const company = application.company
152154
const disponibility = await strapi.services.disponibility.findOne({ id: application.disponibility })
153-
const company = await strapi.query('user', 'users-permissions').findOne({ id: application.company });
154155

155156
const userId = espace.users_permissions_user.id
156157

@@ -268,23 +269,7 @@ module.exports = {
268269
}
269270
}
270271

271-
const companiesWithAllRefused = Object.values(companiesMap).filter(company => company.disponibilities.every(d => !d.is_validated))
272-
273-
for (const company of companiesWithAllRefused) {
274-
await strapi.plugins['email'].services.email.sendEmail(
275-
{
276-
to: [company.email],
277-
}, {
278-
templateId: 'refusal-preselection-company',
279-
},
280-
{
281-
user_name: company.name,
282-
campaign_name: campaign.title,
283-
user_type: 'company',
284-
multiple_disponibilities: company.disponibilities.length > 1,
285-
},
286-
)
287-
}
272+
await new Promise(resolve => setTimeout(resolve, 1000))
288273

289274
const companiesWithOnlyOneValidated = Object.values(companiesMap).filter(company => company.disponibilities.length === 1 && company.disponibilities[0].is_validated)
290275

@@ -314,6 +299,8 @@ module.exports = {
314299
)
315300
}
316301

302+
await new Promise(resolve => setTimeout(resolve, 1000))
303+
317304
const companiesWithMultipleApplication = Object.values(companiesMap).filter(company => company.disponibilities.length > 1 && company.disponibilities.some(d => d.is_validated))
318305

319306
for (const company of companiesWithMultipleApplication) {
@@ -340,6 +327,32 @@ module.exports = {
340327
},
341328
)
342329
}
330+
331+
await new Promise(resolve => setTimeout(resolve, 1000))
332+
333+
const companiesWithAllRefused = Object.values(companiesMap).filter(company => company.disponibilities.every(d => !d.is_validated))
334+
335+
for (const company of companiesWithAllRefused) {
336+
await strapi.plugins['email'].services.email.sendEmail(
337+
{
338+
to: [company.email],
339+
}, {
340+
templateId: 'refusal-preselection-company',
341+
},
342+
{
343+
user_name: company.name,
344+
campaign_name: campaign.title,
345+
user_type: 'company',
346+
multiple_disponibilities: company.disponibilities.length > 1,
347+
},
348+
)
349+
}
350+
351+
console.log('sendEspacePreselectionEmail - Emails sent', {
352+
refused: companiesWithAllRefused.length,
353+
one_validated: companiesWithOnlyOneValidated.length,
354+
multiple_validated: companiesWithMultipleApplication.length,
355+
})
343356
}
344357
}
345358
}

back/extensions/email/services/email.js

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,6 @@ const sendEmail = async (
2121
data = {},
2222
isAdmin = false
2323
) => {
24-
if (template.templateId !== 'confirmation-preselection-place') {
25-
console.log(`skipping ${template.templateId}`)
26-
return
27-
}
28-
2924
if (!template.templateId) {
3025
console.log("No template id given");
3126
return;

0 commit comments

Comments
 (0)