diff --git a/src/Novu.Extensions/IocNovuRegistrationExtensions.cs b/src/Novu.Extensions/IocNovuRegistrationExtensions.cs index 9914464..3931dd9 100644 --- a/src/Novu.Extensions/IocNovuRegistrationExtensions.cs +++ b/src/Novu.Extensions/IocNovuRegistrationExtensions.cs @@ -19,22 +19,19 @@ public static IServiceCollection RegisterNovuClients( { var novuConfiguration = configuration.GetNovuClientConfiguration(); - Action configureClient = c => + Action configureClient = client => { - c.BaseAddress = new Uri(novuConfiguration.Url); + client.BaseAddress = new Uri(novuConfiguration.Url); // allow for multiple registrations—authorization cannot have multiple entries - if (c.DefaultRequestHeaders.Contains("Authorization")) + if (client.DefaultRequestHeaders.Contains("Authorization")) { - c.DefaultRequestHeaders.Remove("Authorization"); + client.DefaultRequestHeaders.Remove("Authorization"); } - c.DefaultRequestHeaders.Add("Authorization", $"ApiKey {novuConfiguration.ApiKey}"); - }; - var settings = refitSettings ?? new RefitSettings - { - ContentSerializer = new NewtonsoftJsonContentSerializer(NovuClient.DefaultSerializerSettings), + client.DefaultRequestHeaders.Add("Authorization", $"ApiKey {novuConfiguration.ApiKey}"); }; + var settings = RefitSettings(refitSettings); services.AddRefitClient(settings).ConfigureHttpClient(configureClient); services.AddRefitClient(settings).ConfigureHttpClient(configureClient); @@ -48,7 +45,26 @@ public static IServiceCollection RegisterNovuClients( services.AddRefitClient(settings).ConfigureHttpClient(configureClient); return services - .AddTransient(_ => novuConfiguration) - .AddTransient(); + .AddTransient(_ => novuConfiguration); + } + + + public static IServiceCollection RegisterNovuClient( + this IServiceCollection services, + IConfiguration configuration, + RefitSettings refitSettings = null) + { + return services + .AddTransient(_ => new NovuClient( + configuration.GetNovuClientConfiguration(), + refitSettings: RefitSettings(refitSettings))); + } + + private static RefitSettings RefitSettings(RefitSettings refitSettings) + { + return refitSettings ?? new RefitSettings + { + ContentSerializer = new NewtonsoftJsonContentSerializer(NovuClient.DefaultSerializerSettings), + }; } } \ No newline at end of file