From 6f18bd262a51ec0004c464a4a1a27e23b62afd6b Mon Sep 17 00:00:00 2001 From: Mihail Hagiu <mihail.hagiu@thinslices.com> Date: Thu, 15 Nov 2018 18:20:57 +0200 Subject: [PATCH] refactor(ReviewerNumbering): Reviewer numbers now assigned on submit instead of autosave --- .../src/services/Collection.js | 4 ++-- .../src/tests/collection.test.js | 8 ++++---- .../routes/fragmentsRecommendations/patch.js | 17 +++++++++++++++++ .../src/routes/fragmentsRecommendations/post.js | 14 +------------- 4 files changed, 24 insertions(+), 19 deletions(-) diff --git a/packages/component-helper-service/src/services/Collection.js b/packages/component-helper-service/src/services/Collection.js index 5bfe4ca8e..f68f5efc7 100644 --- a/packages/component-helper-service/src/services/Collection.js +++ b/packages/component-helper-service/src/services/Collection.js @@ -116,7 +116,7 @@ class Collection { return allCollectionFragments } - async getReviewerNumber({ reqUser, FragmentModel }) { + async getReviewerNumber({ userId, FragmentModel }) { const allCollectionFragments = await this.getAllCollectionFragments({ FragmentModel, }) @@ -124,7 +124,7 @@ class Collection { allCollectionFragments.map(fragment => fragment.invitations), ) const allNumberedInvitationsForUser = allCollectionInvitations - .filter(invite => invite.userId === reqUser.id) + .filter(invite => invite.userId === userId) .filter(invite => invite.reviewerNumber) if (isEmpty(allNumberedInvitationsForUser)) { diff --git a/packages/component-helper-service/src/tests/collection.test.js b/packages/component-helper-service/src/tests/collection.test.js index fb921025d..30315ad22 100644 --- a/packages/component-helper-service/src/tests/collection.test.js +++ b/packages/component-helper-service/src/tests/collection.test.js @@ -56,7 +56,7 @@ describe('Collection helper', () => { const FragmentModel = models.Fragment const reviewerNumber = await collectionHelper.getReviewerNumber({ - reqUser: reviewer, + userId: reviewer.id, FragmentModel, }) @@ -71,7 +71,7 @@ describe('Collection helper', () => { const FragmentModel = models.Fragment const reviewerNumber = await collectionHelper.getReviewerNumber({ - reqUser: reviewer, + userId: reviewer.id, FragmentModel, }) @@ -86,7 +86,7 @@ describe('Collection helper', () => { const FragmentModel = models.Fragment const reviewerNumber = await collectionHelper.getReviewerNumber({ - reqUser: answerReviewer, + userId: answerReviewer.id, FragmentModel, }) @@ -101,7 +101,7 @@ describe('Collection helper', () => { const FragmentModel = models.Fragment const reviewerNumber = await collectionHelper.getReviewerNumber({ - reqUser: reviewer, + userId: reviewer.id, FragmentModel, }) diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js index 7846722ed..7e1e10feb 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js @@ -1,3 +1,4 @@ +const { findIndex } = require('lodash') const { services, authsome: authsomeHelper, @@ -64,6 +65,22 @@ module.exports = models => async (req, res) => { } } + if (req.body.submittedOn) { + const collectionHelper = new Collection({ collection }) + const invitationIndex = findIndex(fragment.invitations, [ + 'userId', + req.authInfo.id, + ]) + if (invitationIndex >= 0) { + const FragmentModel = models.Fragment + const reviewerNumber = await collectionHelper.getReviewerNumber({ + userId: req.authInfo.id, + FragmentModel, + }) + fragment.invitations[invitationIndex].reviewerNumber = reviewerNumber + } + } + fragment.save() return res.status(200).json(recommendation) diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js index 922f7c700..c5c0da1b4 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/post.js @@ -1,5 +1,5 @@ const uuid = require('uuid') -const { pick, get, set, has, isEmpty, last, findIndex } = require('lodash') +const { pick, get, set, has, isEmpty, last } = require('lodash') const config = require('config') const { v4 } = require('uuid') @@ -197,18 +197,6 @@ module.exports = models => async (req, res) => { } } - const invitationIndex = findIndex(fragment.invitations, [ - 'userId', - reqUser.id, - ]) - if (invitationIndex >= 0) { - const FragmentModel = models.Fragment - const reviewerNumber = await collectionHelper.getReviewerNumber({ - reqUser, - FragmentModel, - }) - fragment.invitations[invitationIndex].reviewerNumber = reviewerNumber - } fragment.recommendations.push(newRecommendation) fragment.save() -- GitLab