diff --git a/packages/component-helper-service/src/services/Email.js b/packages/component-helper-service/src/services/Email.js index 15d06ecb278aac32ee6928c6eced4c1bf74bc2aa..16aea03c73f786fb8b3c3de7e54fa82e51580b57 100644 --- a/packages/component-helper-service/src/services/Email.js +++ b/packages/component-helper-service/src/services/Email.js @@ -371,6 +371,31 @@ class Email { }, }) } + + async setupNewVersionSubmittedEmail() { + const { + baseUrl, + UserModel, + collection, + parsedFragment: { id, title }, + authors: { submittingAuthor: { firstName = '', lastName = '' } }, + } = this + + const userHelper = new User({ UserModel }) + const eic = await userHelper.getEditorInChief() + + mailService.sendNotificationEmail({ + toEmail: eic.email, + emailType: 'new-version-submitted', + meta: { + baseUrl, + collection, + eicName: `${eic.firstName} ${eic.lastName}`, + fragment: { id, authorName: `${firstName} ${lastName}`, title }, + handlingEditorName: collection.handlingEditor.name, + }, + }) + } } const getSubject = recommendation => diff --git a/packages/component-mail-service/src/Mail.js b/packages/component-mail-service/src/Mail.js index 39cff7d046e3704ae6abdb3a3cc728672bb1fe38..67d85243bb0fe77362019e459356d1ac3e1dc92a 100644 --- a/packages/component-mail-service/src/Mail.js +++ b/packages/component-mail-service/src/Mail.js @@ -581,6 +581,26 @@ module.exports = { replacements.signatureName }` break + case 'new-version-submitted': + subject = `${meta.collection.customId}: Manuscript Update` + replacements.previewText = 'A manuscript has been updated' + replacements.intro = `Dear Dr. ${meta.handlingEditorName}` + + replacements.paragraph = `A new version of the manuscript titled "${ + meta.fragment.title + }" by ${meta.fragment.authorName} has been submitted.` + replacements.beforeAnchor = + 'Previous reviewers have been automatically invited to review the manuscript again. Please visit the' + replacements.afterAnchor = + 'to see the latest version and any other actions you may need to take.' + + replacements.signatureName = meta.eicName + textBody = `${replacements.intro} ${replacements.paragraph} ${ + replacements.beforeAnchor + } ${replacements.detailsUrl} ${replacements.afterAnchor} ${ + replacements.signatureName + }` + break default: subject = 'Hindawi Notification!' break diff --git a/packages/component-manuscript-manager/src/routes/fragments/patch.js b/packages/component-manuscript-manager/src/routes/fragments/patch.js index 01ea818b7b6c1d4e9c9d8d6a2911695d4c356233..7f3472a3cc103febb370b3b06731f5b2bc301ee6 100644 --- a/packages/component-manuscript-manager/src/routes/fragments/patch.js +++ b/packages/component-manuscript-manager/src/routes/fragments/patch.js @@ -1,6 +1,7 @@ const { Team, User, + Email, services, Fragment, Collection, @@ -103,6 +104,23 @@ module.exports = models => async (req, res) => { fragment.submitted = Date.now() fragment = await fragment.save() + if (heRecommendation.recommendation === 'major') { + const fragmentHelper = new Fragment({ fragment }) + const parsedFragment = await fragmentHelper.getFragmentData({ + handlingEditor: collection.handlingEditor, + }) + const authors = await fragmentHelper.getAuthorData({ + UserModel: models.User, + }) + const email = new Email({ + authors, + collection, + parsedFragment, + UserModel: models.User, + baseUrl: services.getBaseUrl(req), + }) + email.setupNewVersionSubmittedEmail() + } return res.status(200).json(fragment) } catch (e) {