From b8e7368fd91be2d58ef87ef1c89040776f686abf Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Mon, 20 Sep 2021 17:58:36 +0200 Subject: [PATCH] Fix SendHttpRequest outcomes --- .../src/plugins/send-http-request-plugin.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx b/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx index 26e4d6f7e..8a048707b 100644 --- a/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx +++ b/src/designer/elsa-workflows-studio/src/plugins/send-http-request-plugin.tsx @@ -1,16 +1,30 @@ import {eventBus, ElsaPlugin} from "../services"; -import {EventTypes} from "../models"; +import {ActivityDesignDisplayContext, EventTypes, SyntaxNames} from "../models"; import {h} from "@stencil/core"; import { ActivityEditorAppearingEventArgs, ActivityEditorDisappearingEventArgs } from "../components/screens/workflow-definition-editor/elsa-activity-editor-modal/elsa-activity-editor-modal"; +import {parseJson} from "../utils/utils"; export class SendHttpRequestPlugin implements ElsaPlugin { constructor() { eventBus.on(EventTypes.ActivityEditor.Appearing, this.onActivityEditorAppearing); eventBus.on(EventTypes.ActivityEditor.Disappearing, this.onActivityEditorDisappearing); + eventBus.on(EventTypes.ActivityDesignDisplaying, this.onActivityDesignDisplaying); + } + onActivityDesignDisplaying(context: ActivityDesignDisplayContext) { + const activityModel = context.activityModel; + + if (activityModel.type !== 'SendHttpRequest') + return; + + const props = activityModel.properties || []; + const syntax = SyntaxNames.Json; + const branches = props.find(x => x.name == 'SupportedStatusCodes') || {expressions: {'Json': '[]'}, syntax: syntax}; + const expression = branches.expressions[syntax] || []; + context.outcomes = !!expression['$values'] ? expression['$values'] : Array.isArray(expression) ? expression : parseJson(expression) || []; } onActivityEditorAppearing = (args: ActivityEditorAppearingEventArgs) => {