Browse Source

Add support for custom Payload for Azure Queue. (#642)

pull/645/head
Jiří Sýkora 5 years ago
committed by GitHub
parent
commit
696612a9cc
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 7
      backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs
  2. 14
      backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.cs

7
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<ValidationError> CustomValidate()
{
if (!string.IsNullOrWhiteSpace(Queue) && !Regex.IsMatch(Queue, "^[a-z][a-z0-9]{2,}(\\-[a-z0-9]+)*$"))

14
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);

Loading…
Cancel
Save