From dd242ba68035e0c1740415f8ea91a90d27214e63 Mon Sep 17 00:00:00 2001
From: Tania Fecheta <tania.fecheta@thinslices.com>
Date: Wed, 14 Nov 2018 10:36:30 +0200
Subject: [PATCH] fix(fragmentRecommendations): reviewers can add only one
 review on the current version

---
 .../src/routes/fragmentsRecommendations/post.js     | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
index c0301c0d5..3ab4592d8 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
@@ -58,6 +58,8 @@ module.exports = models => async (req, res) => {
     })
   }
 
+  const fragmentRecommendations = get(fragment, 'recommendations', [])
+
   const authsome = authsomeHelper.getAuthsome(models)
   const target = {
     fragment,
@@ -87,6 +89,17 @@ module.exports = models => async (req, res) => {
       .json({ error: 'Cannot write a review on an older version.' })
   }
 
+  if (
+    (recommendationType === recommendations.type.review ||
+      recommendationType === recommendations.type.editor) &&
+    last(collection.fragments) === fragmentId &&
+    !isEmpty(fragmentRecommendations.filter(r => r.userId === req.user))
+  ) {
+    return res
+      .status(400)
+      .json({ error: 'Cannot write another review on this version.' })
+  }
+
   if (
     recommendation === recommendations.publish &&
     recommendationType === recommendations.type.editor &&
-- 
GitLab