Jiří Sýkora
5 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
18 additions and
3 deletions
-
backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueAction.cs
-
backend/extensions/Squidex.Extensions/Actions/AzureQueue/AzureQueueActionHandler.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]+)*$")) |
|
|
|
|
|
|
|
@ -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); |
|
|
|
|