From 289344799edf2ddebaa9b1d63975ee0013b0be6c Mon Sep 17 00:00:00 2001 From: Alex Bezdieniezhnykh Date: Fri, 2 May 2025 11:29:56 +0300 Subject: [PATCH] move hw set and queue offset to user rest entitiy switch to body email set --- Azaion.Api/Program.cs | 24 +++++++++---------- Azaion.Common/Entities/User.cs | 2 +- Azaion.Common/Requests/SetHWRequest.cs | 19 +++++++++++++++ .../Requests/SetUserQueueOffsetsRequest.cs | 9 +++++++ 4 files changed, 41 insertions(+), 13 deletions(-) create mode 100644 Azaion.Common/Requests/SetHWRequest.cs create mode 100644 Azaion.Common/Requests/SetUserQueueOffsetsRequest.cs diff --git a/Azaion.Api/Program.cs b/Azaion.Api/Program.cs index 632893d..e138313 100644 --- a/Azaion.Api/Program.cs +++ b/Azaion.Api/Program.cs @@ -147,6 +147,18 @@ app.MapGet("/users", .RequireAuthorization(apiAdminPolicy) .WithOpenApi(op => new(op){ Summary = "List users by criteria"}); +app.MapPut("/users/hardware/set", + async ([FromBody]SetHWRequest request, IUserService userService, ICache cache, CancellationToken cancellationToken) => + await userService.UpdateHardware(request.Email, request.Hardware, cancellationToken: cancellationToken)) + .RequireAuthorization(apiAdminPolicy) + .WithOpenApi(op => new OpenApiOperation(op){ Summary = "Sets user's hardware"}); + +app.MapPut("/users/queue-offsets/set", + async ([FromBody]SetUserQueueOffsetsRequest request, IUserService userService, CancellationToken cancellationToken) + => await userService.UpdateQueueOffsets(request.Email, request.Offsets, cancellationToken)) + .RequireAuthorization() + .WithOpenApi(op => new OpenApiOperation(op) { Summary = "Sets user's queue offsets" }); + app.MapPost("/resources/{dataFolder?}", async ([FromRoute]string? dataFolder, IFormFile data, IResourcesService resourceService, CancellationToken cancellationToken) => await resourceService.SaveResource(dataFolder, data, cancellationToken)) @@ -171,18 +183,6 @@ app.MapPost("/resources/get/{dataFolder?}", //Need to have POST method for secur }).RequireAuthorization() .WithOpenApi(op => new OpenApiOperation(op){ Summary = "Gets encrypted by users Password and HardwareHash resources. POST method for secure password"}); -app.MapPut("/resources/reset-hardware/{email}", - async ([FromRoute]string email, IUserService userService, ICache cache, CancellationToken cancellationToken) => - await userService.UpdateHardware(email, cancellationToken: cancellationToken)) - .RequireAuthorization(apiAdminPolicy) - .WithOpenApi(op => new OpenApiOperation(op){ Summary = "Resets hardware id in case of hardware change"}); - -app.MapPut("/users/queue-offsets/{email}", - async ([FromRoute] string email, UserQueueOffsets offsets, IUserService userService, CancellationToken cancellationToken) - => await userService.UpdateQueueOffsets(email, offsets, cancellationToken)) - .RequireAuthorization() - .WithOpenApi(op => new OpenApiOperation(op) { Summary = "Updates user queue offsets" }); - app.UseExceptionHandler(_ => {}); app.Run(); diff --git a/Azaion.Common/Entities/User.cs b/Azaion.Common/Entities/User.cs index fa84977..f4a098d 100644 --- a/Azaion.Common/Entities/User.cs +++ b/Azaion.Common/Entities/User.cs @@ -24,4 +24,4 @@ public class UserQueueOffsets public ulong AnnotationsOffset { get; set; } public ulong AnnotationsConfirmOffset { get; set; } public ulong AnnotationsCommandsOffset { get; set; } -} \ No newline at end of file +} diff --git a/Azaion.Common/Requests/SetHWRequest.cs b/Azaion.Common/Requests/SetHWRequest.cs new file mode 100644 index 0000000..de70d17 --- /dev/null +++ b/Azaion.Common/Requests/SetHWRequest.cs @@ -0,0 +1,19 @@ +using FluentValidation; + +namespace Azaion.Common.Requests; + +public class SetHWRequest +{ + public string Email { get; set; } = null!; + public string? Hardware { get; set; } +} + +public class SetHWRequestValidator : AbstractValidator +{ + public SetHWRequestValidator() + { + RuleFor(r => r.Email).NotEmpty() + .WithErrorCode(ExceptionEnum.EmailLengthIncorrect.ToString()) + .WithMessage(_ => BusinessException.GetMessage(ExceptionEnum.EmailLengthIncorrect)); + } +} \ No newline at end of file diff --git a/Azaion.Common/Requests/SetUserQueueOffsetsRequest.cs b/Azaion.Common/Requests/SetUserQueueOffsetsRequest.cs new file mode 100644 index 0000000..272f08d --- /dev/null +++ b/Azaion.Common/Requests/SetUserQueueOffsetsRequest.cs @@ -0,0 +1,9 @@ +using Azaion.Common.Entities; + +namespace Azaion.Common.Requests; + +public class SetUserQueueOffsetsRequest +{ + public string Email { get; set; } = null!; + public UserQueueOffsets Offsets { get; set; } = null!; +} \ No newline at end of file