From 78cd75cd2df7e5199bf4137a42306ab6f3f0ac1b Mon Sep 17 00:00:00 2001
From: Mihail Hagiu <mihail.hagiu@thinslices.com>
Date: Tue, 8 Jan 2019 16:46:13 +0200
Subject: [PATCH] feat(ReviewerReminders): Added email type in config

---
 .../emails/invitations.js                     |  6 +++---
 .../fragmentsInvitations/jobs/reminders.js    | 11 +++-------
 packages/xpub-faraday/config/default.js       | 20 +++++++++++++++----
 3 files changed, 22 insertions(+), 15 deletions(-)

diff --git a/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js b/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js
index 63b09066c..e5bab921f 100644
--- a/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js
+++ b/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js
@@ -13,7 +13,7 @@ const { getEmailCopy } = require('./emailCopy')
 const { scheduleReminderJob } = require('../jobs/reminders')
 const { scheduleRemovalJob } = require('../jobs/removal')
 
-const daysList = [
+const reminderList = [
   config.get('reminders.reviewer.first'),
   config.get('reminders.reviewer.second'),
   config.get('reminders.reviewer.third'),
@@ -121,11 +121,11 @@ module.exports = {
 
     await email.sendEmail()
 
-    daysList.forEach(days =>
+    reminderList.forEach(reminder =>
       scheduleReminderJob({
-        days,
         email,
         timeUnit,
+        reminder,
         userId: invitedUser.id,
         invitationId: invitation.id,
         subject: `${subjectBaseText} reminder`,
diff --git a/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js b/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js
index bad96940e..369adbd26 100644
--- a/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js
+++ b/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js
@@ -6,28 +6,23 @@ const { getEmailCopy } = require('../emails/emailCopy')
 const Email = require('@pubsweet/component-email-templating')
 
 const scheduleReminderJob = async ({
-  days,
   email,
   userId,
   subject,
   timeUnit,
+  reminder,
   titleText,
   invitationId,
   expectedDate,
 }) => {
+  const { days, emailType } = reminder
+
   const executionDate = moment()
     .add(days, timeUnit)
     .toISOString()
 
   const queue = `reminders-${userId}-${invitationId}`
 
-  const terminations = {
-    4: 'first-reminder',
-    7: 'second-reminder',
-    13: 'second-reminder',
-  }
-  const emailType = `reviewer-resend-invitation-${terminations[days]}`
-
   const { paragraph, ...bodyProps } = getEmailCopy({
     emailType,
     titleText,
diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js
index 018ab93d1..e7f94ee35 100644
--- a/packages/xpub-faraday/config/default.js
+++ b/packages/xpub-faraday/config/default.js
@@ -149,10 +149,22 @@ module.exports = {
   ),
   reminders: {
     reviewer: {
-      first: process.env.REMINDER_REVIEWER_FIRST || 4,
-      second: process.env.REMINDER_REVIEWER_SECOND || 7,
-      third: process.env.REMINDER_REVIEWER_THIRD || 14,
-      remove: process.env.REMINDER_REMOVE_REVIEWER || 21,
+      first: {
+        days: process.env.REMINDER_REVIEWER_FIRST || 4,
+        emailType: 'reviewer-resend-invitation-first',
+      },
+      second: {
+        days: process.env.REMINDER_REVIEWER_SECOND || 7,
+        emailType: 'reviewer-resend-invitation-second',
+      },
+      third: {
+        days: process.env.REMINDER_REVIEWER_THIRD || 14,
+        emailType: 'reviewer-resend-invitation-second',
+      },
+      remove: {
+        days: process.env.REMINDER_REMOVE_REVIEWER || 21,
+        emailType: '',
+      },
       timeUnit: process.env.REMINDER_REVIEWER_TIME_UNIT || 'days',
     },
   },
-- 
GitLab