using Common.WebApi.Middlewares; using Microsoft.OpenApi.Models; using Modules.User.Api; using Modules.User.Application; using Swashbuckle.AspNetCore.SwaggerGen; var builder = WebApplication.CreateBuilder(args); builder.AddServiceDefaults(); // Add services to the container. builder.Services.AddAccount(builder.Configuration, "JwtSettings", builder.Configuration.GetConnectionString("PostgreSQL"), "MinIO"); builder.Services.AddMediatR(q => q.RegisterServicesFromAssemblies(AppDomain.CurrentDomain.GetAssemblies())); builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.Configure(options => { options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { Name = "Authorization", Type = SecuritySchemeType.ApiKey, Scheme = "Bearer", BearerFormat = "JWT", In = ParameterLocation.Header, Description = "Enter 'Bearer' [space] and then your valid token in the text input below.\r\n\r\nExample: \"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9\"", }); options.MapType(() => new OpenApiSchema { Type = "string", Format = "date" }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, Array.Empty() } }); }); builder.Services.AddCors(); var app = builder.Build(); app.UseCors(q => q.WithOrigins("http://localhost:5173").AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetPreflightMaxAge(TimeSpan.FromDays(365))); //?? app.UseMiddleware(); app.MapDefaultEndpoints(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } //app.UseHttpsRedirection(); app.UseAuthentication(); app.UseAuthorization(); app.UseMiddleware(); app.MapControllers(); app.Run();