From aa67d1fba2e54ab89a0f2514fdfc0eda30fad569 Mon Sep 17 00:00:00 2001 From: Marc-Roig Date: Fri, 12 May 2023 15:31:50 +0200 Subject: [PATCH] feat: upsert stages when creating a workflow --- .../services/review-workflows/workflows.js | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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() {