From fb27ec2024bf3a05b7c4d1be855ef22089db0a40 Mon Sep 17 00:00:00 2001 From: Mihail Hagiu <mihail.hagiu@thinslices.com> Date: Thu, 1 Nov 2018 11:08:43 +0200 Subject: [PATCH] feat(GetCollections): Reviewer correctly sees manuscript versions --- .../src/routes/collections/get.js | 7 +------ packages/xpub-faraday/config/authsome-helpers.js | 13 +++++++++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/component-manuscript-manager/src/routes/collections/get.js b/packages/component-manuscript-manager/src/routes/collections/get.js index 1314ffda0..ddeeb504d 100644 --- a/packages/component-manuscript-manager/src/routes/collections/get.js +++ b/packages/component-manuscript-manager/src/routes/collections/get.js @@ -1,8 +1,3 @@ -const { last, get } = require('lodash') - -const filterDuplicates = collection => - get(collection, 'currentVersion.id') === last(collection.fragments) - const { authsome: authsomeHelper, } = require('pubsweet-component-helper-service') @@ -21,5 +16,5 @@ module.exports = models => async (req, res) => { }) } - res.status(200).json(collections.filter(filterDuplicates)) + res.status(200).json(collections) } diff --git a/packages/xpub-faraday/config/authsome-helpers.js b/packages/xpub-faraday/config/authsome-helpers.js index c92571ecc..de88ed38e 100644 --- a/packages/xpub-faraday/config/authsome-helpers.js +++ b/packages/xpub-faraday/config/authsome-helpers.js @@ -1,4 +1,4 @@ -const { omit, get, last } = require('lodash') +const { omit, get, last, chain } = require('lodash') const config = require('config') const logger = require('@pubsweet/logger') @@ -207,7 +207,7 @@ const parseUser = ({ user }) => omit(user, sensitiveUserProperties) const getCollections = async ({ user, models }) => { const userPermisssions = await getUserPermissions({ user, Team: models.Team }) - return (await Promise.all( + const collections = (await Promise.all( userPermisssions.map(async up => { let fragment = {} let collection = {} @@ -253,6 +253,11 @@ const getCollections = async ({ user, models }) => { } }), )).filter(Boolean) + return chain(collections) + .sortBy(c => c.currentVersion.version) + .reverse() + .uniqBy('id') + .value() } async function updateReviewerVisibleStatusByInvitation({ @@ -278,6 +283,10 @@ async function updateReviewerVisibleStatusByInvitation({ return get(statuses, `${collection.status}.reviewer.label`) } + if (!invitation) { + return get(statuses, `reviewCompleted.reviewer.label`) + } + return get(invitation, 'hasAnswer', false) && get(invitation, 'isAccepted', false) ? get(statuses, `underReview.reviewer.label`) -- GitLab