From f5e0f608b195371b365378e1877edd19a38bbfbc Mon Sep 17 00:00:00 2001 From: "Collin M. Barrett" Date: Tue, 15 Sep 2020 17:01:15 -0500 Subject: [PATCH] =?UTF-8?q?refactor(api-clients):=20=E2=99=BB=20mv=20direc?= =?UTF-8?q?tory=20host=20to=20configuration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 1 + docker-compose.yml | 7 +++++-- .../ConfigurationExtensions.cs | 2 +- .../ConfigurationExtensions.cs | 10 ++++++++-- .../Options/ApiOptions.cs | 9 +++++++++ 5 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs diff --git a/.env b/.env index b9d3e692e..5d1c55132 100644 --- a/.env +++ b/.env @@ -6,6 +6,7 @@ ARCHIVAL_GIT_REPOSITORY_PATH=archives ARCHIVAL_GIT_USER_NAME=FilterLists Archival ARCHIVAL_GIT_USER_EMAIL=noreply@filterlists.com +DIRECTORY_HOST=directory-api DIRECTORY_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY= DIRECTORY_CONNECTION_STRING=Server=directory-db;Database=filterlists;User Id=filterlists;Password=filterlists; DIRECTORY_DB_USER=filterlists diff --git a/docker-compose.yml b/docker-compose.yml index 70f06aafa..fc1cf0d66 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,6 +27,7 @@ services: ApplicationInsights__ServerTelemetryChannelStoragePath: ${APPLICATION_INSIGHTS_SERVER_TELEMETRY_CHANNEL_STORAGE_PATH} ApplicationInsights__InstrumentationKey: ${ARCHIVAL_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY} ConnectionStrings__SchedulingConnection: ${ARCHIVAL_REDIS_CONNECTION_STRING} + Api__DirectoryHost: ${DIRECTORY_HOST} Git__RepositoryPath: ${ARCHIVAL_GIT_REPOSITORY_PATH} Git__UserName: ${ARCHIVAL_GIT_USER_NAME} Git__UserEmail: ${ARCHIVAL_GIT_USER_EMAIL} @@ -44,8 +45,10 @@ services: image: ghcr.io/collinbarrett/filterlists-directory-api restart: always networks: - - reverse-proxy - - directory + reverse-proxy: + aliases: + - ${DIRECTORY_HOST} + directory: depends_on: - directory-db volumes: diff --git a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs index 0a5b68492..a20ec9d45 100644 --- a/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs +++ b/services/Archival/FilterLists.Archival.Infrastructure/ConfigurationExtensions.cs @@ -23,7 +23,7 @@ public static void AddInfrastructureServices(this IServiceCollection services, I services.AddSharedKernelLogging(configuration); services.AddSchedulingServices(configuration); - services.AddApiClients(); + services.AddApiClients(configuration); services.AddPersistenceServices(configuration); } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs index 18c85e4bb..2fca604fa 100644 --- a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/ConfigurationExtensions.cs @@ -1,4 +1,6 @@ using System; +using FilterLists.SharedKernel.Apis.Clients.Options; +using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Refit; @@ -6,11 +8,15 @@ namespace FilterLists.SharedKernel.Apis.Clients { public static class ConfigurationExtensions { - public static void AddApiClients(this IServiceCollection services) + public static void AddApiClients(this IServiceCollection services, IConfiguration configuration) { // TODO: use SystemTextJsonContentSerializer() once less feature-limited services.AddRefitClient() - .ConfigureHttpClient(c => c.BaseAddress = new Uri("http://directory-api")); + .ConfigureHttpClient(c => + { + var host = configuration.GetSection(ApiOptions.Key).Get().DirectoryHost; + c.BaseAddress = new UriBuilder("http", host).Uri; + }); } } } diff --git a/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs new file mode 100644 index 000000000..2457c8ba0 --- /dev/null +++ b/services/SharedKernel/FilterLists.SharedKernel.Apis.Clients/Options/ApiOptions.cs @@ -0,0 +1,9 @@ +namespace FilterLists.SharedKernel.Apis.Clients.Options +{ + internal class ApiOptions + { + public const string Key = "Api"; + + public string DirectoryHost { get; set; } = null!; + } +}