server cleanup
This commit is contained in:
@@ -0,0 +1,118 @@
|
||||
using System.Diagnostics;
|
||||
using Baya.Application.Features.Users.Commands.Create;
|
||||
using Baya.Application.Models.ApiResult;
|
||||
using Baya.Application.Models.Identity;
|
||||
using Baya.Application.ServiceConfiguration;
|
||||
using Baya.Domain.Entities.User;
|
||||
using Baya.Infrastructure.CrossCutting.Logging;
|
||||
using Baya.Infrastructure.Identity.Identity.Dtos;
|
||||
using Baya.Infrastructure.Identity.Jwt;
|
||||
using Baya.Infrastructure.Identity.ServiceConfiguration;
|
||||
using Baya.Infrastructure.Monitoring.Configurations;
|
||||
using Baya.Infrastructure.Persistence.ServiceConfiguration;
|
||||
using Baya.SharedKernel.Extensions;
|
||||
using Baya.Web.Api.Controllers.V1.UserManagement;
|
||||
using Baya.Web.Plugins.Grpc;
|
||||
using Baya.WebFramework.Filters;
|
||||
using Baya.WebFramework.Middlewares;
|
||||
using Baya.WebFramework.ServiceConfiguration;
|
||||
using Baya.WebFramework.Swagger;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Serilog;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.Host.UseSerilog(LoggingConfiguration.ConfigureLogger);
|
||||
|
||||
var configuration = builder.Configuration;
|
||||
|
||||
Activity.DefaultIdFormat = ActivityIdFormat.W3C;
|
||||
|
||||
builder
|
||||
.ConfigureHealthChecks()
|
||||
.SetupOpenTelemetry();
|
||||
|
||||
builder.Services.Configure<IdentitySettings>(configuration.GetSection(nameof(IdentitySettings)));
|
||||
|
||||
var identitySettings = configuration.GetSection(nameof(IdentitySettings)).Get<IdentitySettings>();
|
||||
|
||||
builder.Services.AddControllers(options =>
|
||||
{
|
||||
options.Filters.Add(typeof(OkResultAttribute));
|
||||
options.Filters.Add(typeof(NotFoundResultAttribute));
|
||||
options.Filters.Add(typeof(ContentResultFilterAttribute));
|
||||
options.Filters.Add(typeof(ModelStateValidationAttribute));
|
||||
options.Filters.Add(typeof(BadRequestResultFilterAttribute));
|
||||
options.Filters.Add(new ProducesResponseTypeAttribute(typeof(ApiResult<Dictionary<string, List<string>>>),
|
||||
StatusCodes.Status400BadRequest));
|
||||
options.Filters.Add(new ProducesResponseTypeAttribute(typeof(ApiResult),
|
||||
StatusCodes.Status401Unauthorized));
|
||||
options.Filters.Add(new ProducesResponseTypeAttribute(typeof(ApiResult),
|
||||
StatusCodes.Status403Forbidden));
|
||||
options.Filters.Add(new ProducesResponseTypeAttribute(typeof(ApiResult),
|
||||
StatusCodes.Status500InternalServerError));
|
||||
|
||||
}).ConfigureApiBehaviorOptions(options =>
|
||||
{
|
||||
options.SuppressModelStateInvalidFilter = true;
|
||||
options.SuppressMapClientErrors = true;
|
||||
});
|
||||
|
||||
|
||||
builder.Services.AddEndpointsApiExplorer();
|
||||
builder.Services.AddSwagger("v1","v1.1");
|
||||
|
||||
|
||||
builder.Services.AddApplicationServices()
|
||||
.RegisterIdentityServices(identitySettings)
|
||||
.AddPersistenceServices(configuration)
|
||||
.AddWebFrameworkServices();
|
||||
|
||||
builder.Services.RegisterValidatorsAsServices();
|
||||
builder.Services.AddExceptionHandler<ExceptionHandler>();
|
||||
|
||||
builder.Services.AddMapster();
|
||||
|
||||
TypeAdapterConfig.GlobalSettings.Scan(typeof(UserCreateCommand).Assembly,
|
||||
typeof(GetRolesDto).Assembly);
|
||||
|
||||
|
||||
#region Plugin Services Configuration
|
||||
|
||||
builder.Services.ConfigureGrpcPluginServices();
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
|
||||
await app.ApplyMigrationsAsync();
|
||||
await app.SeedDefaultUsersAsync();
|
||||
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseDeveloperExceptionPage();
|
||||
}
|
||||
else
|
||||
app.UseExceptionHandler(_=>{});
|
||||
|
||||
app.UseSwaggerAndUi();
|
||||
|
||||
app.UseRouting();
|
||||
|
||||
app.UseAuthentication();
|
||||
app.UseAuthorization();
|
||||
app.MapControllers();
|
||||
|
||||
app.UseMetrics()
|
||||
.UseHealthChecks();
|
||||
|
||||
app.ConfigureGrpcPipeline();
|
||||
|
||||
await app.RunAsync();
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user