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