diff --git a/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs index 30b2998..c631d91 100644 --- a/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs +++ b/dotnet/AipsCore/Application/Abstract/MessageBroking/IMessagePublisher.cs @@ -2,5 +2,5 @@ namespace AipsCore.Application.Abstract.MessageBroking; public interface IMessagePublisher { - Task PublishAsync(string exchange, string routeKey, T message, CancellationToken cancellationToken = default); + Task PublishAsync(T message, CancellationToken cancellationToken = default); } \ No newline at end of file diff --git a/dotnet/AipsCore/Infrastructure/DI/Configuration/ConfigurationEnvExtensions.cs b/dotnet/AipsCore/Infrastructure/DI/Configuration/ConfigurationEnvExtensions.cs index c2b16d3..da94672 100644 --- a/dotnet/AipsCore/Infrastructure/DI/Configuration/ConfigurationEnvExtensions.cs +++ b/dotnet/AipsCore/Infrastructure/DI/Configuration/ConfigurationEnvExtensions.cs @@ -7,6 +7,7 @@ public static class ConfigurationEnvExtensions private const string DbConnStringKey = "DB_CONN_STRING"; private const string RabbitMqAmqpUriKey = "RABBITMQ_AMQP_URI"; + private const string RabbitMqExchange = "RABBITMQ_EXCHANGE"; private const string JwtIssuer = "JWT_ISSUER"; private const string JwtAudience = "JWT_AUDIENCE"; @@ -25,6 +26,11 @@ public static class ConfigurationEnvExtensions return configuration.GetEnvForSure(RabbitMqAmqpUriKey); } + public string GetEnvRabbitMqExchange() + { + return configuration.GetEnvForSure(RabbitMqExchange); + } + public string GetEnvJwtIssuer() { return configuration.GetEnvForSure(JwtIssuer); diff --git a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs index c9cb674..c7d7dfa 100644 --- a/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs +++ b/dotnet/AipsCore/Infrastructure/MessageBroking/RabbitMQ/RabbitMqPublisher.cs @@ -2,6 +2,8 @@ using System.Text; using System.Text.Json; using AipsCore.Application.Abstract; using AipsCore.Application.Abstract.MessageBroking; +using AipsCore.Infrastructure.DI.Configuration; +using Microsoft.Extensions.Configuration; using RabbitMQ.Client; namespace AipsCore.Infrastructure.MessageBroking.RabbitMQ; @@ -9,20 +11,26 @@ namespace AipsCore.Infrastructure.MessageBroking.RabbitMQ; public class RabbitMqPublisher : IMessagePublisher { private readonly IRabbitMqConnection _connection; + private readonly IConfiguration _configuration; - public RabbitMqPublisher(IRabbitMqConnection connection) + public RabbitMqPublisher(IRabbitMqConnection connection, IConfiguration configuration) { _connection = connection; + _configuration = configuration; } - public async Task PublishAsync(string exchange, string routeKey, T message, CancellationToken cancellationToken = default) + public async Task PublishAsync(T message, CancellationToken cancellationToken = default) { var channel = await _connection.CreateChannelAsync(cancellationToken); - await channel.ExchangeDeclareAsync(exchange, ExchangeType.Topic, durable: true, cancellationToken: cancellationToken); + await channel.ExchangeDeclareAsync(GetExchange(), ExchangeType.Topic, durable: true, cancellationToken: cancellationToken); var bytes = Serialize(message); - await channel.BasicPublishAsync(exchange, routeKey, bytes, cancellationToken); + await channel.BasicPublishAsync( + GetExchange(), + typeof(T).Name, + bytes, + cancellationToken); await channel.CloseAsync(cancellationToken); } @@ -31,4 +39,6 @@ public class RabbitMqPublisher : IMessagePublisher { return JsonSerializer.SerializeToUtf8Bytes(message); } + + private string GetExchange() => _configuration.GetEnvRabbitMqExchange(); } \ No newline at end of file diff --git a/dotnet/AipsWebApi/Controllers/UserController.cs b/dotnet/AipsWebApi/Controllers/UserController.cs index 2cc97f9..7c3f705 100644 --- a/dotnet/AipsWebApi/Controllers/UserController.cs +++ b/dotnet/AipsWebApi/Controllers/UserController.cs @@ -40,6 +40,6 @@ public class UserController : ControllerBase [HttpPost("test")] public async Task Test(IMessagePublisher publisher) { - await publisher.PublishAsync("test", "test.test", "Test poruka"); + await publisher.PublishAsync("Test poruka"); } } \ No newline at end of file