diff --git a/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs b/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs index f19a4d102..bf87414dd 100644 --- a/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs +++ b/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs @@ -1,4 +1,4 @@ -// ========================================================================== +// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschraenkt) @@ -35,6 +35,11 @@ namespace Squidex.Extensions.Actions.AzureQueue [Formattable] public string Queue { get; set; } + [Display(Name = "Payload (Optional)", Description = "Leave it empty to use the full event as body.")] + [DataType(DataType.MultilineText)] + [Formattable] + public string Payload { get; set; } + protected override IEnumerable CustomValidate() { if (!string.IsNullOrWhiteSpace(Queue) && !Regex.IsMatch(Queue, "^[a-z][a-z0-9]{2,}(\\-[a-z0-9]+)*$")) diff --git a/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs b/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs index 77773be39..8466de2f9 100644 --- a/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs +++ b/backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs @@ -1,4 +1,4 @@ -// ========================================================================== +// ========================================================================== // Squidex Headless CMS // ========================================================================== // Copyright (c) Squidex UG (haftungsbeschränkt) @@ -34,14 +34,24 @@ namespace Squidex.Extensions.Actions.AzureQueue protected override async Task<(string Description, AzureQueueJob Data)> CreateJobAsync(EnrichedEvent @event, AzureQueueAction action) { + var requestBody = string.Empty; var queueName = await FormatAsync(action.Queue, @event); + if (!string.IsNullOrEmpty(action.Payload)) + { + requestBody = await FormatAsync(action.Payload, @event); + } + else + { + requestBody = ToEnvelopeJson(@event); + } + var ruleDescription = $"Send AzureQueueJob to azure queue '{queueName}'"; var ruleJob = new AzureQueueJob { QueueConnectionString = action.ConnectionString, QueueName = queueName, - MessageBodyV2 = ToEnvelopeJson(@event) + MessageBodyV2 = requestBody }; return (ruleDescription, ruleJob);