all repos — caroster @ 9149587136874e250bdc8994451e13889b029762

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

backend/api/event/services/event.js (view raw)

 1'use strict';
 2const moment = require('moment');
 3
 4const TEMPLATE_NAME_RECAP = 'event_recap';
 5
 6const {STRAPI_URL = ''} = process.env;
 7
 8module.exports = {
 9  sendDailyRecap: async event => {
10    const referenceDate = moment().subtract(1, 'day');
11    const hasBeenModified = referenceDate.isSameOrBefore(event.updated_at);
12    if (hasBeenModified) {
13      strapi.log.debug(
14        `Send daily recap to ${event.email} for event #${event.id}`
15      );
16      const newCars = event.cars?.filter(car =>
17        referenceDate.isSameOrBefore(car.created_at)
18      );
19      try {
20        const templateId = await strapi.plugins[
21          'email-designer'
22        ].services.template.getId(TEMPLATE_NAME_RECAP);
23        await strapi.plugins[
24          'email-designer'
25        ].services.email.sendTemplatedEmail(
26          {
27            to: event.email,
28          },
29          {
30            templateId,
31            subject: `Caroster: ${event.name}`,
32          },
33          {
34            eventName: event.name,
35            eventLink: `${STRAPI_URL}/e/${event.uuid}`,
36            waitingListCount: event.waitingList?.length || 0,
37            carsCount: event.cars?.length || 0,
38            newCarsCount: newCars?.length || 0,
39          }
40        );
41      } catch (error) {
42        console.error(error);
43        strapi.log.error(
44          `Impossible to send recap notification to ${event.email} for event #${
45            event.id
46          }. Error: ${JSON.stringify(error)}`
47        );
48      }
49    }
50  },
51};