Fix signal_url liquid filter

This commit is contained in:
Sipke Schoorstra 2021-05-08 22:06:46 +02:00
parent 5761ad7145
commit c3448723d5
2 changed files with 7 additions and 9 deletions

View file

@ -3,9 +3,11 @@ using Elsa;
using Elsa.Activities.Http;
using Elsa.Activities.Http.Bookmarks;
using Elsa.Activities.Http.JavaScript;
using Elsa.Activities.Http.Liquid;
using Elsa.Activities.Http.Options;
using Elsa.Activities.Http.Parsers;
using Elsa.Activities.Http.Services;
using Elsa.Scripting.Liquid.Extensions;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc.Infrastructure;
using Microsoft.Extensions.DependencyInjection.Extensions;
@ -44,6 +46,7 @@ namespace Microsoft.Extensions.DependencyInjection
.AddBookmarkProvider<HttpEndpointBookmarkProvider>()
.AddHttpContextAccessor()
.AddNotificationHandlers(typeof(ConfigureJavaScriptEngine))
.AddLiquidFilter<SignalUrlFilter>("signal_url")
.AddDataProtection();
return services;

View file

@ -1,5 +1,4 @@
using System;
using System.Threading.Tasks;
using System.Threading.Tasks;
using Elsa.Activities.Http.Models;
using Elsa.Activities.Http.Services;
using Elsa.Scripting.Liquid.Services;
@ -22,14 +21,10 @@ namespace Elsa.Activities.Http.Liquid
public ValueTask<FluidValue> ProcessAsync(FluidValue input, FilterArguments arguments, TemplateContext context)
{
var workflowContextValue = context.GetValue("WorkflowExecutionContext");
if (workflowContextValue.IsNil())
throw new ArgumentException("WorkflowExecutionContext missing while invoking 'signal_url'");
var workflowContext = (WorkflowExecutionContext)workflowContextValue.ToObjectValue();
var activityExecutionContext = (ActivityExecutionContext) context.Model;
var workflowExecutionContext = activityExecutionContext.WorkflowExecutionContext;
var signalName = input.ToStringValue();
var url = GenerateUrl(signalName, workflowContext);
var url = GenerateUrl(signalName, workflowExecutionContext);
return new ValueTask<FluidValue>(new StringValue(url));
}