diff --git a/src/JsonMessageHandler.cs b/src/JsonMessageHandler.cs new file mode 100644 index 0000000..55fe337 --- /dev/null +++ b/src/JsonMessageHandler.cs @@ -0,0 +1,16 @@ +using System.Text.Json; + +namespace Linn.Common.Messaging.RabbitMQ; + +public abstract class JsonMessageHandler(string routingKey) : IMessageHandler +{ + public string RoutingKey { get; } = routingKey; + + public async Task HandleAsync(Message message, CancellationToken cancellationToken) + { + var body = JsonSerializer.Deserialize(message.Body.Span); + await this.HandleAsync(body, cancellationToken); + } + + protected abstract Task HandleAsync(T? body, CancellationToken cancellationToken); +} diff --git a/src/Linn.Common.Messaging.RabbitMQ.csproj b/src/Linn.Common.Messaging.RabbitMQ.csproj index 7b36b58..15784bc 100644 --- a/src/Linn.Common.Messaging.RabbitMQ.csproj +++ b/src/Linn.Common.Messaging.RabbitMQ.csproj @@ -1,11 +1,11 @@ - + Utilities for requesting data from other (proxy) services. net10.0 enable Linn.Common.Messaging.RabbitMQ Linn.Common.Messaging.RabbitMQ - 5.0.0 + 5.1.0 enable