summaryrefslogtreecommitdiffstats
path: root/api/WhatApi/Program.cs
diff options
context:
space:
mode:
authorivar <i@oiee.no>2025-12-02 22:38:23 +0100
committerivar <i@oiee.no>2025-12-02 22:38:23 +0100
commit68ffad06a6cfd2cd2015ab03fb82bf69629dd7ec (patch)
treeefab90e59deae00953704059efdec14cb3ad81c7 /api/WhatApi/Program.cs
parentd2089c0038460504869b27203143e40441a86eff (diff)
downloadwhat-68ffad06a6cfd2cd2015ab03fb82bf69629dd7ec.tar.xz
what-68ffad06a6cfd2cd2015ab03fb82bf69629dd7ec.zip
Move off razor pages
Diffstat (limited to 'api/WhatApi/Program.cs')
-rw-r--r--api/WhatApi/Program.cs84
1 files changed, 44 insertions, 40 deletions
diff --git a/api/WhatApi/Program.cs b/api/WhatApi/Program.cs
index 823402d..ac7e825 100644
--- a/api/WhatApi/Program.cs
+++ b/api/WhatApi/Program.cs
@@ -7,47 +7,51 @@ global using NetTopologySuite.Geometries;
global using Microsoft.AspNetCore.Http.Extensions;
global using Microsoft.AspNetCore.Mvc;
global using NetTopologySuite;
+using Npgsql;
+using WhatApi;
using WhatApi.Middleware;
-namespace WhatApi;
-
-public partial class Program
-{
- public static int Main(string[] args) {
- var builder = WebApplication.CreateBuilder(args);
-
- builder.Services.AddHttpContextAccessor();
- builder.Services.AddDbContextPool<Database>(b => {
- if (builder.Environment.IsDevelopment())
- b.EnableSensitiveDataLogging();
- b.UseNpgsql(builder.Configuration.GetConnectionString("Master"), o => o.UseNetTopologySuite());
- });
-
- builder.Services.AddRazorPages();
- builder.Services.AddCors(o => o.AddDefaultPolicy(p => p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));
- builder.Services.AddControllers()
- .AddJsonOptions(o => {
- o.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
- o.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals;
- o.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
- o.JsonSerializerOptions.Converters.Add(new GeoJsonConverterFactory());
- });
+var builder = WebApplication.CreateBuilder(args);
+var dev = builder.Environment.IsDevelopment();
+builder.Services.AddHttpContextAccessor();
+builder.Services.AddDbContextPool<Database>(b => {
+ var dataSourceBuilder = new NpgsqlDataSourceBuilder(builder.Configuration.GetConnectionString("Master"));
+ dataSourceBuilder.EnableDynamicJson();
+ if (dev) {
+ b.EnableSensitiveDataLogging();
+ dataSourceBuilder.EnableParameterLogging();
+ dataSourceBuilder.UseNetTopologySuite();
+ }
+ b.UseNpgsql(dataSourceBuilder.Build(), o => {
+ o.EnableRetryOnFailure();
+ o.UseQuerySplittingBehavior(QuerySplittingBehavior.SplitQuery);
+ o.UseNetTopologySuite();
+ });
+});
+if (dev) builder.Configuration["DISABLE_AUDIT_TRAILS"] = "true";
+builder.Services.AddCors(o => o.AddDefaultPolicy(p => p.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader()));
- var app = builder.Build();
+builder.Services.AddControllers()
+ .AddJsonOptions(o => {
+ o.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
+ o.JsonSerializerOptions.NumberHandling = JsonNumberHandling.AllowNamedFloatingPointLiterals;
+ o.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
+ o.JsonSerializerOptions.Converters.Add(new GeoJsonConverterFactory());
+ });
-#if DEBUG
- using var scope = app.Services.CreateScope();
- var db = scope.ServiceProvider.GetRequiredService<Database>();
- Seed(db);
-#endif
- app.UseRouting();
- app.UseForwardedHeaders();
- app.UseCors();
- app.MapStaticAssets();
- app.UseMiddleware<UserLastSeenMiddleware>();
- app.MapRazorPages();
- app.MapControllers();
- app.Run();
- return 0;
- }
-} \ No newline at end of file
+var app = builder.Build();
+if (dev) {
+ using var scope = app.Services.CreateScope();
+ var db = scope.ServiceProvider.GetRequiredService<Database>();
+ Seed.Full(db, opt => {
+ opt.ClearTables = false;
+ });
+}
+app.UseRouting();
+app.UseForwardedHeaders();
+app.UseCors();
+app.MapStaticAssets();
+app.UseMiddleware<UserLastSeenMiddleware>();
+app.MapControllers();
+app.Run();
+return 0; \ No newline at end of file