all repos — caroster @ de693e86e975ebf6ed7f19f82762e553d852de03

[Octree] Group carpool to your event https://caroster.io

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