diff --git a/packages/component-helper-service/src/services/Collection.js b/packages/component-helper-service/src/services/Collection.js index abebaf42a7be4ab0371332fc20d7a138ae42aec5..2fe5502233953fffec4f7f4bc91d07780cd612df 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 9b42e199faca42cfef7921821fafdaa7d707b7b3..acd037254ddb9ada6417d99980a2a30588799d08 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 68ac1a9ada44f9046590f4c2f5cbd36d3ffcb0c9..f546274ae546d905fe925babdd17189a4167d10b 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 = []