db works, upload works

This commit is contained in:
Alex Bezdieniezhnykh
2024-11-12 22:16:50 +02:00
parent 2336c15aa4
commit ddbf8114ba
15 changed files with 66 additions and 63 deletions
+14 -7
View File
@@ -7,10 +7,12 @@ using Azaion.Common.Requests;
using Azaion.Services;
using FluentValidation;
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Authorization;
using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models;
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(o => o.Limits.MaxRequestBodySize = 209715200); //increase upload limit up to 200mb
var jwtConfig = builder.Configuration.GetSection(nameof(JwtConfig)).Get<JwtConfig>();
if (jwtConfig == null)
@@ -31,7 +33,10 @@ builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
IssuerSigningKey = signingKey
};
});
builder.Services.AddAuthorization();
var apiAdminPolicy = new AuthorizationPolicyBuilder().RequireRole(RoleEnum.ApiAdmin.ToString()).Build();
builder.Services.AddAuthorization(o => o.AddPolicy("apiAdminPolicy", apiAdminPolicy));
builder.Services.AddHttpContextAccessor();
builder.Services.AddEndpointsApiExplorer();
@@ -87,21 +92,23 @@ app.UseAuthentication();
app.UseAuthorization();
app.MapPost("/login",
async (string username, string password, IUserService userService, IAuthService authService, CancellationToken cancellationToken) =>
async (LoginRequest request, IUserService userService, IAuthService authService, CancellationToken cancellationToken) =>
{
var user = await userService.ValidateUser(username, password, cancellationToken: cancellationToken);
var user = await userService.ValidateUser(request, cancellationToken: cancellationToken);
return Results.Ok(new { Token = authService.CreateToken(user)});
});
app.MapPost("/register-user",
async (RegisterUserRequest registerUserRequest, IUserService userService, CancellationToken cancellationToken)
=> await userService.RegisterUser(registerUserRequest, cancellationToken))
.RequireAuthorization(p => p.RequireRole(RoleEnum.ApiAdmin.ToString()));
.RequireAuthorization(apiAdminPolicy);
app.MapPost("/resources",
async (UploadResourceRequest uploadResourceRequest, IResourcesService resourceService, CancellationToken cancellationToken)
=> await resourceService.SaveResource(uploadResourceRequest, cancellationToken))
.RequireAuthorization(p => p.RequireRole(RoleEnum.ApiAdmin.ToString()));
async (ResourceEnum resourceEnum, IFormFile data, IResourcesService resourceService, CancellationToken cancellationToken)
=> await resourceService.SaveResource(resourceEnum, data, cancellationToken))
.Accepts<IFormFile>("multipart/form-data")
.RequireAuthorization(apiAdminPolicy)
.DisableAntiforgery();
app.MapPost("/resources/get",
async (GetResourceRequest request, IAuthService authService, IUserService userService, IResourcesService resourcesService, CancellationToken cancellationToken) =>