Skip to content

Commit df117ab

Browse files
committed
Environment variable usage improvements
1 parent 623cae9 commit df117ab

File tree

8 files changed

+23
-15
lines changed

8 files changed

+23
-15
lines changed

.env.example

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ASPNETCORE_ENVIRONMENT=Development
22
ASPNETCORE_HTTP_PORTS=8080
33
KEY_VAULT_NAME=key-vault-name
4-
OUTPUT_CACHE=true
4+
USE_OUTPUT_CACHE=true
55
USE_MOCKING=true
66
MARKET_CLIENT_URL=http://localhost:9091

src/Api/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
var builder = WebApplication.CreateBuilder(args);
2828

29-
var keyVaultName = builder.Configuration.GetValue<string>(EnvironmentVariable.KeyVaultName);
29+
var keyVaultName = builder.Configuration.GetValue<string>(EnvVarKeys.KeyVaultName);
3030
if (builder.Environment.IsProduction() && !string.IsNullOrEmpty(keyVaultName))
3131
{
3232
var keyVaultUri = new Uri($"https://{keyVaultName}.vault.azure.net/");

src/Api/Setup/ApiMiddleware.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using Common;
12
using Scalar.AspNetCore;
23

34
namespace Api.Setup;
@@ -13,7 +14,7 @@ public static void ConfigureMiddleware(this WebApplication app, IWebHostEnvironm
1314

1415
app.UseRouting();
1516

16-
if (configuration.GetValue("OUTPUT_CACHE", true))
17+
if (configuration.GetValue(EnvVarKeys.UseOutputCache, true))
1718
{
1819
app.UseOutputCache();
1920
}

src/Common/EnvVarsHelper.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace Common;
2+
3+
public static class EnvVarKeys
4+
{
5+
public const string KeyVaultName = "KEY_VAULT_NAME";
6+
public const string UseOutputCache = "USE_OUTPUT_CACHE";
7+
public const string MarketClientUrl = "MARKET_CLIENT_URL";
8+
public const string UseMocking = "USE_MOCKING";
9+
}
10+
11+
public static class EnvVarAccessors
12+
{
13+
public static bool UseMocking =>
14+
bool.TryParse(Environment.GetEnvironmentVariable(EnvVarKeys.UseMocking), out var value) && value;
15+
}

src/Common/EnvironmentVariable.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/Services/MarketClient.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class MarketClient(ILogger<MarketClient> logger, IConfiguration configura
2525

2626
using (var httpClient = _httpClientFactory.CreateClient())
2727
{
28-
httpClient.BaseAddress = new Uri(configuration.GetValue(EnvironmentVariable.MarketClientUrl, "https://api.coingecko.com"));
28+
httpClient.BaseAddress = new Uri(configuration.GetValue(EnvVarKeys.MarketClientUrl, "https://api.coingecko.com"));
2929
var response = await httpClient.SendAsync(request).ConfigureAwait(false);
3030
if (response.IsSuccessStatusCode)
3131
{

tests/IntegrationTests/Setup/ApplicationFactory.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ public sealed class ApplicationFactory(Fixture fixture) : WebApplicationFactory<
88
{
99
protected override void ConfigureWebHost(IWebHostBuilder builder)
1010
{
11-
if (bool.Parse(Environment.GetEnvironmentVariable(EnvironmentVariable.UseMocking) ?? "false"))
11+
if (EnvVarAccessors.UseMocking)
1212
{
13-
Environment.SetEnvironmentVariable(EnvironmentVariable.MarketClientUrl, $"http://localhost:{fixture.GetPort()}");
13+
builder?.UseSetting(EnvVarKeys.MarketClientUrl, $"http://localhost:{fixture.GetPort()}");
1414
}
1515
}
1616
}

tests/IntegrationTests/Setup/Fixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public Fixture()
1717
{
1818
DotNetEnv.Env.TraversePath().Load();
1919

20-
if (bool.Parse(Environment.GetEnvironmentVariable(EnvironmentVariable.UseMocking) ?? "false"))
20+
if (EnvVarAccessors.UseMocking)
2121
{
2222
_wireMockContainer = new ContainerBuilder()
2323
.WithCleanUp(true)

0 commit comments

Comments
 (0)