summaryrefslogtreecommitdiff
path: root/Api/Program.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Api/Program.cs')
-rw-r--r--Api/Program.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/Api/Program.cs b/Api/Program.cs
new file mode 100644
index 0000000..0fefe46
--- /dev/null
+++ b/Api/Program.cs
@@ -0,0 +1,38 @@
+using Microsoft.EntityFrameworkCore;
+using WikiWaka.Api.Models;
+
+var builder = WebApplication.CreateBuilder(args);
+
+builder.Services.AddControllers();
+builder.Services.AddHealthChecks();
+builder.Services.AddEndpointsApiExplorer();
+builder.Services.AddSwaggerGen();
+builder.Services.AddDbContext<DbWikiWakaContext>(options =>
+ options.UseSqlite(builder.Configuration.GetConnectionString("DbWikiWaka")));
+
+var app = builder.Build();
+
+if (app.Environment.IsDevelopment())
+{
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+
+app.MapControllers();
+app.MapHealthChecks("/healthz");
+
+using (var scope = app.Services.CreateScope())
+{
+ await using DbWikiWakaContext db = scope.ServiceProvider.GetRequiredService<DbWikiWakaContext>();
+ ILogger<Program> logger = scope.ServiceProvider.GetRequiredService<ILogger<Program>>();
+ bool isNewDatabase = await db.Database.EnsureCreatedAsync();
+ if (isNewDatabase)
+ {
+ logger.LogInformation("Creating new database...");
+ await DbInit.InitializeLanguages(db);
+ }
+ else
+ logger.LogInformation("Database existed before, not changing");
+}
+
+app.Run();