Address PR comments

Signed-off-by: solidDoWant <fred.heinecke@yahoo.com>
This commit is contained in:
solidDoWant 2025-04-28 07:53:14 +00:00 committed by Zoe Roux
parent 7193b5a2a2
commit 0fe423869a

View File

@ -23,6 +23,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.WebUtilities; using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Primitives;
using RabbitMQ.Client; using RabbitMQ.Client;
namespace Kyoo.RabbitMq; namespace Kyoo.RabbitMq;
@ -61,37 +62,26 @@ public static class RabbitMqModule
// Support query parameters defined here: // Support query parameters defined here:
// https://www.rabbitmq.com/docs/uri-query-parameters // https://www.rabbitmq.com/docs/uri-query-parameters
Dictionary<string, Microsoft.Extensions.Primitives.StringValues> queryParameters = Dictionary<string, StringValues> queryParameters = QueryHelpers.ParseQuery(
QueryHelpers.ParseQuery(factory.Uri.Query); factory.Uri.Query
queryParameters.TryGetValue(
"heartbeat",
out Microsoft.Extensions.Primitives.StringValues heartbeats
); );
queryParameters.TryGetValue("heartbeat", out StringValues heartbeats);
if (int.TryParse(heartbeats.LastOrDefault(), out int heartbeatValue)) if (int.TryParse(heartbeats.LastOrDefault(), out int heartbeatValue))
factory.RequestedHeartbeat = TimeSpan.FromSeconds(heartbeatValue); factory.RequestedHeartbeat = TimeSpan.FromSeconds(heartbeatValue);
queryParameters.TryGetValue( queryParameters.TryGetValue("connection_timeout", out StringValues connectionTimeouts);
"connection_timeout",
out Microsoft.Extensions.Primitives.StringValues connectionTimeouts
);
if (int.TryParse(connectionTimeouts.LastOrDefault(), out int connectionTimeoutValue)) if (int.TryParse(connectionTimeouts.LastOrDefault(), out int connectionTimeoutValue))
factory.RequestedConnectionTimeout = TimeSpan.FromSeconds(connectionTimeoutValue); factory.RequestedConnectionTimeout = TimeSpan.FromSeconds(connectionTimeoutValue);
queryParameters.TryGetValue( queryParameters.TryGetValue("channel_max", out StringValues channelMaxValues);
"channel_max",
out Microsoft.Extensions.Primitives.StringValues channelMaxValues
);
if (ushort.TryParse(channelMaxValues.LastOrDefault(), out ushort channelMaxValue)) if (ushort.TryParse(channelMaxValues.LastOrDefault(), out ushort channelMaxValue))
factory.RequestedChannelMax = channelMaxValue; factory.RequestedChannelMax = channelMaxValue;
if (!factory.Ssl.Enabled) if (!factory.Ssl.Enabled)
return; return;
queryParameters.TryGetValue( queryParameters.TryGetValue("cacertfile", out StringValues caCertFiles);
"cacertfile",
out Microsoft.Extensions.Primitives.StringValues caCertFiles
);
var caCertFile = caCertFiles.LastOrDefault(); var caCertFile = caCertFiles.LastOrDefault();
if (!string.IsNullOrEmpty(caCertFile)) if (!string.IsNullOrEmpty(caCertFile))
{ {
@ -169,10 +159,7 @@ public static class RabbitMqModule
break; break;
} }
queryParameters.TryGetValue( queryParameters.TryGetValue("server_name_indication", out StringValues sniValues);
"server_name_indication",
out Microsoft.Extensions.Primitives.StringValues sniValues
);
var sni = sniValues.LastOrDefault(); var sni = sniValues.LastOrDefault();
if (!string.IsNullOrEmpty(sni)) if (!string.IsNullOrEmpty(sni))
{ {
@ -185,10 +172,7 @@ public static class RabbitMqModule
factory.Ssl.ServerName = sni; factory.Ssl.ServerName = sni;
} }
queryParameters.TryGetValue( queryParameters.TryGetValue("auth_mechanism", out StringValues authMechanisms);
"auth_mechanism",
out Microsoft.Extensions.Primitives.StringValues authMechanisms
);
if (authMechanisms.Count > 0) if (authMechanisms.Count > 0)
{ {
factory.AuthMechanisms.Clear(); factory.AuthMechanisms.Clear();
@ -231,18 +215,9 @@ public static class RabbitMqModule
factory.HostName, factory.HostName,
"rabbitmq" "rabbitmq"
); );
var port = configuration.GetValue<int?>("RABBITMQ_PORT"); factory.Port = configuration.GetValue("RABBITMQ_PORT", 5672);
if (port != null)
factory.Port = port.Value;
else if (factory.Port == 0)
factory.Port = 5672;
} }
private static string _GetNonEmptyString(params string?[] values) private static string _GetNonEmptyString(params string?[] values) =>
{ values.FirstOrDefault(string.IsNullOrEmpty) ?? string.Empty;
foreach (var value in values)
if (!string.IsNullOrEmpty(value))
return value;
return string.Empty;
}
} }