extract FilterListsApi__BaseUrl to config

This commit is contained in:
Collin M. Barrett 2019-07-06 20:42:59 -05:00
parent c0dc38fd95
commit 59a4e067b3
6 changed files with 33 additions and 15 deletions

11
.env
View file

@ -5,11 +5,12 @@ API_MYSQL_USER=filterlists
API_MYSQL_PASSWORD=filterlists
AGENT_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY=
AGENT_ARCHIVE_GIT_REPOSITORY_DIRECTORY=archives
AGENT_ARCHIVE_GIT_SIGNATURE_NAME=
AGENT_ARCHIVE_GIT_SIGNATURE_EMAIL=
AGENT_ARCHIVE_GIT_COMMIT_MESSAGE_SUFFIX= FilterLists archive by FilterLists.Agent
AGENT_FILTERLISTS_API_BASE_URL=https://filterlists.com/api/v1
AGENT_GITHUB_PRODUCT_HEADER_VALUE=
AGENT_GITHUB_PERSONAL_ACCESS_TOKEN=
AGENT_GITHUB_REPOSITORY_OWNER=collinbarrett
AGENT_GITHUB_REPOSITORY=FilterLists
AGENT_ARCHIVE_GIT_COMMIT_MESSAGE_SUFFIX=
AGENT_ARCHIVE_GIT_REPOSITORY_DIRECTORY=
AGENT_ARCHIVE_GIT_SIGNATURE_NAME=
AGENT_ARCHIVE_GIT_SIGNATURE_EMAIL=
AGENT_GITHUB_REPOSITORY=FilterLists

View file

@ -65,16 +65,17 @@ services:
volumes:
- archives:/app/archives
environment:
ConnectionString__FilterListsConnection: ${API_CONNECTION_STRING}
ApplicationInsights__InstrumentationKey: ${AGENT_APPLICATION_INSIGHTS_INSTRUMENTATION_KEY}
Archive__RepositoryDirectory: ${AGENT_ARCHIVE_GIT_REPOSITORY_DIRECTORY}
Archive__SignatureName: ${AGENT_ARCHIVE_GIT_SIGNATURE_NAME}
Archive__SignatureEmail: ${AGENT_ARCHIVE_GIT_SIGNATURE_EMAIL}
Archive__CommitMessageSuffix: ${AGENT_ARCHIVE_GIT_COMMIT_MESSAGE_SUFFIX}
ConnectionString__FilterListsConnection: ${API_CONNECTION_STRING}
FilterListsApi__BaseUrl: ${AGENT_FILTERLISTS_API_BASE_URL}
GitHub__ProductHeaderValue: ${AGENT_GITHUB_PRODUCT_HEADER_VALUE}
GitHub__PersonalAccessToken: ${AGENT_GITHUB_PERSONAL_ACCESS_TOKEN}
GitHub__RepositoryOwner: ${AGENT_GITHUB_REPOSITORY_OWNER}
GitHub__Repository: ${AGENT_GITHUB_REPOSITORY}
Archive__CommitMessageSuffix: ${AGENT_ARCHIVE_GIT_COMMIT_MESSAGE_SUFFIX}
Archive__RepositoryDirectory: ${AGENT_ARCHIVE_GIT_REPOSITORY_DIRECTORY}
Archive__SignatureName: ${AGENT_ARCHIVE_GIT_SIGNATURE_NAME}
Archive__SignatureEmail: ${AGENT_ARCHIVE_GIT_SIGNATURE_EMAIL}
networks:
reverse-proxy:

View file

@ -0,0 +1,10 @@
using System;
using JetBrains.Annotations;
namespace FilterLists.Agent.AppSettings
{
public class FilterListsApiSettings
{
public Uri BaseUrl { get; [UsedImplicitly] set; }
}
}

View file

@ -48,6 +48,7 @@ private static void AddConfiguration(this IServiceCollection services)
services.ConfigureCustom<ApplicationInsightsSettings>(config);
services.ConfigureCustom<ArchiveSettings>(config);
services.ConfigureCustom<ConnectionStringSettings>(config);
services.ConfigureCustom<FilterListsApiSettings>(config);
services.ConfigureCustom<GitHubSettings>(config);
}

View file

@ -1,21 +1,23 @@
using System;
using System.Threading.Tasks;
using FilterLists.Agent.AppSettings;
using FilterLists.Agent.Core.Interfaces.Clients;
using Microsoft.Extensions.Localization;
using Microsoft.Extensions.Options;
using RestSharp;
namespace FilterLists.Agent.Infrastructure.Clients
{
public class FilterListsApiClient : IFilterListsApiClient
{
private const string FilterListsApiBaseUrl = "https://filterlists.com/api/v1";
private readonly IStringLocalizer<FilterListsApiClient> _localizer;
private readonly IRestClient _restClient;
public FilterListsApiClient(IStringLocalizer<FilterListsApiClient> stringLocalizer)
public FilterListsApiClient(IStringLocalizer<FilterListsApiClient> stringLocalizer,
IOptions<FilterListsApiSettings> filterListsApiOptions)
{
_localizer = stringLocalizer;
_restClient = new RestClient(FilterListsApiBaseUrl) {UserAgent = "FilterLists.Agent"};
_restClient = new RestClient(filterListsApiOptions.Value.BaseUrl) {UserAgent = "FilterLists.Agent"};
}
public async Task<TResponse> ExecuteAsync<TResponse>(IRestRequest request)

View file

@ -3,14 +3,17 @@
"InstrumentationKey": ""
},
"Archive": {
"RepositoryDirectory": "",
"RepositoryDirectory": "archives",
"SignatureName": "",
"SignatureEmail": "",
"CommitMessageSuffix": ""
"CommitMessageSuffix": " FilterLists archive by FilterLists.Agent"
},
"ConnectionString": {
"FilterListsConnection": ""
},
"FilterListsApi": {
"BaseUrl": "https://filterlists.com/api/v1"
},
"GitHub": {
"ProductHeaderValue": "",
"PersonalAccessToken:": "",