From c6e91b858040095734905adfd595383d04cc75b7 Mon Sep 17 00:00:00 2001 From: Sebastian Mihalache <sebi.mihalache@gmail.com> Date: Mon, 3 Dec 2018 15:38:48 +0200 Subject: [PATCH] fix(submitRevision): create author team when submitting revision --- .../strategies/eicRequestRevision.js | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js b/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js index cbd743fe6..671c507d1 100644 --- a/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js +++ b/packages/component-manuscript-manager/src/routes/fragments/strategies/eicRequestRevision.js @@ -1,5 +1,7 @@ +const { union } = require('lodash') + module.exports = { - execute: async ({ models, fragmentHelper, collectionHelper }) => { + execute: async ({ models, TeamHelper, fragmentHelper, collectionHelper }) => { const eicRequestToRevision = fragmentHelper.getLatestEiCRequestToRevision() if (!eicRequestToRevision) { throw new Error('No Editor in Chief request to revision has been found.') @@ -11,6 +13,32 @@ module.exports = { await fragmentHelper.removeRevision() + const teamHelper = new TeamHelper({ + TeamModel: models.Team, + fragmentId: newFragment.id, + }) + + const authorIds = newFragment.authors.map(auth => { + const { id } = auth + return id + }) + + let authorsTeam = await teamHelper.getTeam({ + role: 'author', + objectType: 'fragment', + }) + + if (!authorsTeam) { + authorsTeam = await teamHelper.createTeam({ + role: 'author', + members: authorIds, + objectType: 'fragment', + }) + } else { + authorsTeam.members = union(authorsTeam.members, authorIds) + await authorsTeam.save() + } + await collectionHelper.updateStatus({ newStatus: 'submitted' }) newFragment.submitted = Date.now() -- GitLab