diff --git a/packages/component-helper-service/src/services/Fragment.js b/packages/component-helper-service/src/services/Fragment.js index 61e251769229374481eb08ec92ff801cac10561d..6e418ee90f6d1e80bf308e16e9c89f627efeaaa4 100644 --- a/packages/component-helper-service/src/services/Fragment.js +++ b/packages/component-helper-service/src/services/Fragment.js @@ -1,16 +1,5 @@ const get = require('lodash/get') -const setFragmentOwners = (fragment = {}, author = {}) => { - const { owners = [] } = fragment - if (author.isSubmitting) { - const authorAlreadyOwner = owners.includes(author.id) - if (!authorAlreadyOwner) { - return [author.id, ...owners] - } - } - return owners -} - class Fragment { constructor({ fragment }) { this.fragment = fragment @@ -20,6 +9,17 @@ class Fragment { this.fragment = newFragment } + static setFragmentOwners(fragment = {}, author = {}) { + const { owners = [] } = fragment + if (author.isSubmitting) { + const authorAlreadyOwner = owners.includes(author.id) + if (!authorAlreadyOwner) { + return [author.id, ...owners] + } + } + return owners + } + async getFragmentData({ handlingEditor = {} }) { const { fragment: { metadata = {}, recommendations = [], id } } = this const heRecommendation = recommendations.find( @@ -54,7 +54,7 @@ class Fragment { isCorresponding, } fragment.authors.push(author) - fragment.owners = setFragmentOwners(fragment, author) + fragment.owners = this.constructor.setFragmentOwners(fragment, author) await fragment.save() return author