Skip to content

Commit adf0224

Browse files
committed
refactor: add new environment so we can generate swagger spec without connecting to DB
1 parent fffec9d commit adf0224

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

Inv_Backend_NET/Program.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Inventory_Backend_NET.Startup;
2+
using Inventory_Backend_NET.Startup.Constant;
23
using Inventory_Backend_NET.TestOnlyEndpoint;
34

45
namespace Inventory_Backend_NET;
@@ -20,12 +21,13 @@ public static void Main(string[] args)
2021

2122

2223
var app = builder.Build();
23-
app.MigrateDatabases();
24+
if (!app.Environment.IsEnvironment(Env.ApiSpecGen))
25+
app.MigrateDatabases();
2426

2527
var containsSeederKeyword = app.HandleSeedingCommandFromCli(args: args);
2628
if (containsSeederKeyword) return;
2729

28-
if (app.Environment.IsEnvironment("Local") || app.Environment.IsEnvironment("E2E"))
30+
if (app.Environment.IsEnvironment(Env.Local) || app.Environment.IsEnvironment(Env.E2E))
2931
{
3032
app.UseSwaggerUI();
3133
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
namespace Inventory_Backend_NET.Startup.Constant;
2+
3+
internal static class Env
4+
{
5+
internal const string Local = "Local";
6+
7+
internal const string E2E = "E2E";
8+
9+
/// <summary>
10+
/// Ignore DB Connection when generating OpenAPI Spec
11+
/// </summary>
12+
internal const string ApiSpecGen = "OpenAPI-Spec-Gen";
13+
}

Inv_Backend_NET/Startup/PrepareDependencyInjection.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Inventory_Backend_NET.Fitur.Barang._Dependency;
55
using Inventory_Backend_NET.Fitur.Logging;
66
using Inventory_Backend_NET.Fitur.Pengajuan._Dependency;
7+
using Inventory_Backend_NET.Startup.Constant;
78
using Inventory_Backend_NET.Startup.Service;
89
using Microsoft.AspNetCore.Authorization;
910
using Microsoft.AspNetCore.Mvc.Authorization;
@@ -42,11 +43,14 @@ public static WebApplicationBuilder PrepareDependencyInjectionServices(this WebA
4243
options.Filters.Add(new AuthorizeFilter(policy)); // 👈 Global AuthGuard
4344
});
4445

45-
string connectionString = builder
46-
.Configuration
47-
.GetConnectionString(MyConstants.AppSettingsKey.InventoryDbConnectionString)!;
46+
if (!builder.Environment.IsEnvironment(Env.ApiSpecGen))
47+
{
48+
string connectionString = builder
49+
.Configuration
50+
.GetConnectionString(MyConstants.AppSettingsKey.InventoryDbConnectionString)!;
4851

49-
builder.Services.PrepareMyDbContextWithInterceptor(connectionString);
52+
builder.Services.PrepareMyDbContextWithInterceptor(connectionString);
53+
}
5054

5155
return builder;
5256
}

0 commit comments

Comments
 (0)