From 5ad362314ba66427cb4a2e0162e051fe30633ea9 Mon Sep 17 00:00:00 2001 From: Mihail Hagiu <mihail.hagiu@thinslices.com> Date: Wed, 9 Jan 2019 09:59:56 +0200 Subject: [PATCH] fix(ReviewerReminders): Changed logic --- .../fragmentsInvitations/emails/emailCopy.js | 1 + .../emails/invitations.js | 13 +++++------- .../fragmentsInvitations/jobs/reminders.js | 12 +++++------ packages/xpub-faraday/config/default.js | 20 +++++-------------- 4 files changed, 17 insertions(+), 29 deletions(-) diff --git a/packages/component-invite/src/routes/fragmentsInvitations/emails/emailCopy.js b/packages/component-invite/src/routes/fragmentsInvitations/emails/emailCopy.js index 7c24136bd..2dba02779 100644 --- a/packages/component-invite/src/routes/fragmentsInvitations/emails/emailCopy.js +++ b/packages/component-invite/src/routes/fragmentsInvitations/emails/emailCopy.js @@ -41,6 +41,7 @@ const getEmailCopy = ({ We look forward to hearing from you.` break case 'reviewer-resend-invitation-second-reminder': + case 'reviewer-resend-invitation-third-reminder': resend = true upperContent = `We sent you a request to review ${titleText}; however we have not yet received your decision. We would appreciate it if you could visit the following link to let us know whether or not you will be able to review this manuscript:` diff --git a/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js b/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js index e5bab921f..6b9b96c94 100644 --- a/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js +++ b/packages/component-invite/src/routes/fragmentsInvitations/emails/invitations.js @@ -1,6 +1,6 @@ const config = require('config') -const { get } = require('lodash') +const { get, forOwn } = require('lodash') const Email = require('@pubsweet/component-email-templating') const unsubscribeSlug = config.get('unsubscribe.url') @@ -13,11 +13,7 @@ const { getEmailCopy } = require('./emailCopy') const { scheduleReminderJob } = require('../jobs/reminders') const { scheduleRemovalJob } = require('../jobs/removal') -const reminderList = [ - config.get('reminders.reviewer.first'), - config.get('reminders.reviewer.second'), - config.get('reminders.reviewer.third'), -] +const daysList = config.get('reminders.reviewer.days') const timeUnit = config.get('reminders.reviewer.timeUnit') const removalDays = config.get('reminders.reviewer.remove') const daysExpected = config.get('daysExpectedForReview') @@ -121,11 +117,12 @@ module.exports = { await email.sendEmail() - reminderList.forEach(reminder => + forOwn(daysList, (day, order) => scheduleReminderJob({ + day, + order, 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 369adbd26..29176ae7b 100644 --- a/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js +++ b/packages/component-invite/src/routes/fragmentsInvitations/jobs/reminders.js @@ -6,25 +6,25 @@ const { getEmailCopy } = require('../emails/emailCopy') const Email = require('@pubsweet/component-email-templating') const scheduleReminderJob = async ({ + day, email, + order, userId, subject, timeUnit, - reminder, + daysList, titleText, invitationId, expectedDate, }) => { - const { days, emailType } = reminder - const executionDate = moment() - .add(days, timeUnit) + .add(day, timeUnit) .toISOString() const queue = `reminders-${userId}-${invitationId}` const { paragraph, ...bodyProps } = getEmailCopy({ - emailType, + emailType: `reviewer-resend-invitation-${order}-reminder`, titleText, expectedDate, }) @@ -33,7 +33,7 @@ const scheduleReminderJob = async ({ email.content.subject = subject const params = { - days, + day, timeUnit, executionDate, emailProps: cloneDeep(email), diff --git a/packages/xpub-faraday/config/default.js b/packages/xpub-faraday/config/default.js index e7f94ee35..2cceb1388 100644 --- a/packages/xpub-faraday/config/default.js +++ b/packages/xpub-faraday/config/default.js @@ -149,22 +149,12 @@ module.exports = { ), reminders: { reviewer: { - 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: '', + days: { + 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, timeUnit: process.env.REMINDER_REVIEWER_TIME_UNIT || 'days', }, }, -- GitLab