diff --git a/packages/core/admin/ee/server/services/review-workflows/workflows.js b/packages/core/admin/ee/server/services/review-workflows/workflows.js index 9989a5c9e4..5d45623a29 100644 --- a/packages/core/admin/ee/server/services/review-workflows/workflows.js +++ b/packages/core/admin/ee/server/services/review-workflows/workflows.js @@ -1,6 +1,8 @@ 'use strict'; +const { set } = require('lodash/fp'); const { WORKFLOW_MODEL_UID } = require('../../constants/workflows'); +const { getService } = require('../../utils'); module.exports = ({ strapi }) => ({ find(opts) { @@ -11,8 +13,19 @@ module.exports = ({ strapi }) => ({ return strapi.entityService.findOne(WORKFLOW_MODEL_UID, id, opts); }, - create(workflowData) { - return strapi.entityService.create(WORKFLOW_MODEL_UID, { data: workflowData }); + async create(opts) { + let createOpts = opts; + + // Create stages if provided + if (opts.data.stages) { + const stageIds = await getService('stages', { strapi }) + .replaceStages([], opts.data.stages) + .then((stages) => stages.map((stage) => stage.id)); + + createOpts = set('data.stages', stageIds, opts); + } + + return strapi.entityService.create(WORKFLOW_MODEL_UID, createOpts); }, count() {