From 0b0239cdeded38927ed8ead2eb9ebb7c5db162f4 Mon Sep 17 00:00:00 2001
From: Sebastian Mihalache <sebastian.mihalache@gmail.con>
Date: Thu, 28 Jun 2018 10:13:53 +0300
Subject: [PATCH] feat(component-user-manager): remove author from fragment on
 delete

---
 .../src/routes/fragmentsUsers/delete.js                   | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/packages/component-user-manager/src/routes/fragmentsUsers/delete.js b/packages/component-user-manager/src/routes/fragmentsUsers/delete.js
index 86073f5d5..b39893eb7 100644
--- a/packages/component-user-manager/src/routes/fragmentsUsers/delete.js
+++ b/packages/component-user-manager/src/routes/fragmentsUsers/delete.js
@@ -10,6 +10,7 @@ module.exports = models => async (req, res) => {
       return res.status(400).json({
         error: `Fragment ${fragmentId} does not match collection ${collectionId}`,
       })
+    const fragment = await models.Fragment.find(fragmentId)
     const teamHelper = new Team({ TeamModel: models.Team, fragmentId })
 
     const team = await teamHelper.getTeam({
@@ -20,7 +21,12 @@ module.exports = models => async (req, res) => {
     await teamHelper.removeTeamMember({ teamId: team.id, userId })
     user.teams = user.teams.filter(userTeamId => team.id !== userTeamId)
     delete user.passwordResetToken
-    await user.save()
+    user.save()
+
+    fragment.authors = fragment.authors || []
+    fragment.authors = fragment.authors.filter(author => author.id !== userId)
+    fragment.save()
+
     return res.status(200).json({})
   } catch (e) {
     const notFoundError = await services.handleNotFoundError(e, 'item')
-- 
GitLab