|
@@ -32,26 +32,17 @@ namespace Website
|
|
|
|
|
|
services.AddSingleton(Configuration.GetSection("cacheDurations").Get<CacheDurations>());
|
|
|
|
|
|
- services.AddHttpClient<IGitApi, GitApi>(client => {
|
|
|
- client.BaseAddress = new Uri(Configuration["gitApiEndpoint"]);
|
|
|
- client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
- });
|
|
|
- services.AddHttpClient<IBlogApi, BlogApi>(client => {
|
|
|
- client.BaseAddress = new Uri(Configuration["blogApiEndpoint"]);
|
|
|
- client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
- });
|
|
|
- services.AddHttpClient<IAuthenticationProvider, AuthenticationProvider>(client => {
|
|
|
- client.BaseAddress = new Uri(Configuration["authApiEndpoint"]);
|
|
|
- client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
- });
|
|
|
- services.AddHttpClient<IApiKeyManager, ApiKeyManager>(client => {
|
|
|
- client.BaseAddress = new Uri(Configuration["authApiEndpoint"] + "api/");
|
|
|
- client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
- });
|
|
|
- services.AddHttpClient<IMailboxesApi, MailboxesApi>(client => {
|
|
|
- client.BaseAddress = new Uri(Configuration["mailboxesApiEndpoint"]);
|
|
|
- client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
- });
|
|
|
+ void AddHttpClientWithApiKey<TInterface, TImplementation>(string uriConfigKey, string extraUriString = "") where TInterface : class where TImplementation : class, TInterface =>
|
|
|
+ services.AddHttpClient<TInterface, TImplementation>(client =>
|
|
|
+ {
|
|
|
+ client.BaseAddress = new Uri(Configuration[uriConfigKey] + extraUriString);
|
|
|
+ client.DefaultRequestHeaders.Add("x-api-key", new[] { Configuration["authApiKey"] });
|
|
|
+ });
|
|
|
+ AddHttpClientWithApiKey<IGitApi, GitApi>("gitApiEndpoint");
|
|
|
+ AddHttpClientWithApiKey<IBlogApi, BlogApi>("blogApiEndpoint");
|
|
|
+ AddHttpClientWithApiKey<IAuthenticationProvider, AuthenticationProvider>("authApiEndpoint");
|
|
|
+ AddHttpClientWithApiKey<IApiKeyManager, ApiKeyManager>("authApiEndpoint", "api/");
|
|
|
+ AddHttpClientWithApiKey<IMailboxesApi, MailboxesApi>("mailboxesApiEndpoint");
|
|
|
|
|
|
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie();
|
|
|
|