From 50206cb5d23306b25c8548529d786706d396468a Mon Sep 17 00:00:00 2001
From: Andrei Cioromila <andrei.cioromila@thinslices.com>
Date: Fri, 16 Nov 2018 16:52:07 +0200
Subject: [PATCH] refactor(helper-service): extract method to retrieve all
 manuscript versions

---
 .../src/services/Collection.js                        |  8 ++++++++
 .../src/routes/fragments/patch.js                     |  5 +++++
 .../src/routes/fragmentsRecommendations/post.js       | 11 ++++-------
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/packages/component-helper-service/src/services/Collection.js b/packages/component-helper-service/src/services/Collection.js
index abebaf42a..2fe550223 100644
--- a/packages/component-helper-service/src/services/Collection.js
+++ b/packages/component-helper-service/src/services/Collection.js
@@ -140,6 +140,14 @@ class Collection {
       return fragmentHelper.hasReviewReport()
     }
   }
+
+  async getAllFragments({ FragmentModel }) {
+    return Promise.all(
+      this.collection.fragments.map(async fragment =>
+        FragmentModel.find(fragment),
+      ),
+    )
+  }
 }
 
 module.exports = Collection
diff --git a/packages/component-manuscript-manager/src/routes/fragments/patch.js b/packages/component-manuscript-manager/src/routes/fragments/patch.js
index 9b42e199f..acd037254 100644
--- a/packages/component-manuscript-manager/src/routes/fragments/patch.js
+++ b/packages/component-manuscript-manager/src/routes/fragments/patch.js
@@ -103,8 +103,13 @@ module.exports = models => async (req, res) => {
       await authorsTeam.save()
     }
 
+    const fragments = await collectionHelper.getAllFragments({
+      FragmentModel: models.Fragment,
+    })
+
     await collectionHelper.updateStatusByRecommendation({
       recommendation: heRecommendation.recommendation,
+      fragments,
     })
 
     newFragment.submitted = Date.now()
diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
index 68ac1a9ad..f546274ae 100644
--- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
+++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js
@@ -1,6 +1,5 @@
-/* eslint-disable no-return-await */
 const uuid = require('uuid')
-const { pick, get, set, has, isEmpty, last, findLast } = require('lodash')
+const { pick, get, set, has, isEmpty, last } = require('lodash')
 const config = require('config')
 const { v4 } = require('uuid')
 const logger = require('@pubsweet/logger')
@@ -45,11 +44,9 @@ module.exports = models => async (req, res) => {
   const collectionHelper = new Collection({ collection })
 
   try {
-    fragments = await Promise.all(
-      collection.fragments.map(
-        async fragment => await models.Fragment.find(fragment),
-      ),
-    )
+    fragments = await collectionHelper.getAllFragments({
+      FragmentModel: models.Fragment,
+    })
   } catch (e) {
     const notFoundError = await services.handleNotFoundError(e, 'Item')
     fragments = []
-- 
GitLab