backend/api/car/models/car.js (view raw)
1'use strict';
2
3const _uniq = require('lodash/uniq');
4
5const {STRAPI_URL = ''} = process.env;
6
7module.exports = {
8 lifecycles: {
9 async afterCreate(result) {
10 sendEmailsToWaitingList(result.event);
11 },
12 },
13};
14
15const sendEmailsToWaitingList = async event => {
16 const eventWaitingList = event?.waitingList || [];
17 const userEmails = eventWaitingList.map(user => user.email).filter(Boolean);
18 const templateId = await strapi.plugins[
19 'email-designer'
20 ].services.template.getId('waitinglist_notif');
21
22 if (userEmails?.length > 0)
23 try {
24 await strapi.plugins['email-designer'].services.email.sendTemplatedEmail(
25 {
26 to: _uniq(userEmails),
27 },
28 {
29 templateId,
30 subject: `Caroster: nouvelle voiture pour ${event.name}`,
31 },
32 {
33 eventName: event.name,
34 eventLink: `${STRAPI_URL}/e/${event.uuid}`,
35 }
36 );
37 } catch (error) {
38 console.error(error);
39 strapi.log.error(
40 `Impossible to send email waiting list notification for event #${
41 event.id
42 }. Error: ${JSON.stringify(error)}`
43 );
44 }
45};