all repos — caroster @ a60257e204f1cc253e9d375f87bc6d7ea661c1d8

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

backend/api/travel/models/travel.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);
11    },
12  },
13};
14
15const sendEmailsToWaitingList = async travel => {
16  const event = travel.event;
17  const eventWaitingList = event?.waitingList || [];
18  const userEmails = eventWaitingList.map(user => user.email).filter(Boolean);
19  const templateId = await strapi.plugins[
20    'email-designer'
21  ].services.template.getId('waitinglist_notif');
22
23  if (userEmails?.length > 0)
24    try {
25      await strapi.plugins['email-designer'].services.email.sendTemplatedEmail(
26        {
27          to: _uniq(userEmails),
28        },
29        {
30          templateId,
31        },
32        {
33          event,
34          travel,
35          eventLink: `${STRAPI_URL}/e/${event.uuid}`,
36        }
37      );
38    } catch (error) {
39      console.error(error);
40      strapi.log.error(
41        `Impossible to send email waiting list notification for event #${
42          event.id
43        }. Error: ${JSON.stringify(error)}`
44      );
45    }
46};