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