diff options
author | TheArcaneBrony <myrainbowdash949@gmail.com> | 2023-08-14 10:36:19 +0200 |
---|---|---|
committer | TheArcaneBrony <myrainbowdash949@gmail.com> | 2023-08-14 10:36:19 +0200 |
commit | 977220895d8127116d0000fa98088b235d4a8801 (patch) | |
tree | 09b9f295e9e0e82b8137edbd98afc3aebbab1a56 /MxApiExtensions/Program.cs | |
download | MxApiExtensions-977220895d8127116d0000fa98088b235d4a8801.tar.xz |
Initial commit
Diffstat (limited to 'MxApiExtensions/Program.cs')
-rw-r--r-- | MxApiExtensions/Program.cs | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/MxApiExtensions/Program.cs b/MxApiExtensions/Program.cs new file mode 100644 index 0000000..00afe09 --- /dev/null +++ b/MxApiExtensions/Program.cs @@ -0,0 +1,48 @@ +using MxApiExtensions; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. + +builder.Services.AddControllers(); +// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(); + +builder.Services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); + +builder.Services.AddSingleton<CacheConfiguration>(); +builder.Services.AddScoped<Auth>(); + +builder.Services.AddRequestTimeouts(x => { + x.DefaultPolicy = new() { + Timeout = TimeSpan.FromMinutes(10), + WriteTimeoutResponse = async context => { + context.Response.StatusCode = 504; + context.Response.ContentType = "application/json"; + await context.Response.StartAsync(); + await context.Response.WriteAsJsonAsync(new MatrixException() { + ErrorCode = "M_TIMEOUT", + Error = "Request timed out" + }.GetAsJson()); + await context.Response.CompleteAsync(); + } + }; +}); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (app.Environment.IsDevelopment()) +{ + app.UseSwagger(); + app.UseSwaggerUI(); +} + +// app.UseHttpsRedirection(); + +app.UseAuthorization(); + +app.MapControllers(); + +app.Run(); |