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 // Squidex Headless CMS
// ========================================================================== // ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt) // Copyright (c) Squidex UG (haftungsbeschraenkt)
@ -35,6 +35,11 @@ namespace Squidex.Extensions.Actions.AzureQueue
[Formattable] [Formattable]
public string Queue { get; set; } 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() protected override IEnumerable<ValidationError> CustomValidate()
{ {
if (!string.IsNullOrWhiteSpace(Queue) && !Regex.IsMatch(Queue, "^[a-z][a-z0-9]{2,}(\\-[a-z0-9]+)*$")) 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 // Squidex Headless CMS
// ========================================================================== // ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschränkt) // 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) protected override async Task<(string Description, AzureQueueJob Data)> CreateJobAsync(EnrichedEvent @event, AzureQueueAction action)
{ {
var requestBody = string.Empty;
var queueName = await FormatAsync(action.Queue, @event); 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 ruleDescription = $"Send AzureQueueJob to azure queue '{queueName}'";
var ruleJob = new AzureQueueJob var ruleJob = new AzureQueueJob
{ {
QueueConnectionString = action.ConnectionString, QueueConnectionString = action.ConnectionString,
QueueName = queueName, QueueName = queueName,
MessageBodyV2 = ToEnvelopeJson(@event) MessageBodyV2 = requestBody
}; };
return (ruleDescription, ruleJob); return (ruleDescription, ruleJob);

Loading…
Cancel
Save