From abcddaba9d4132d645ec7fa9142ab266dfdc2861 Mon Sep 17 00:00:00 2001 From: Sergio Matias Urquin Date: Sun, 27 Jul 2025 19:33:19 -0600 Subject: [PATCH] Revise authentication and remove unnecessary code --- .../UseCases/Modules/Adapter/ModulePort.cs | 4 +- .../Input/ChangeModuleStatusRequest.cs | 2 +- .../Modules/Input/CreateModuleRequest.cs | 2 +- .../Modules/Input/UpdateModuleRequest.cs | 2 +- .../UseCases/Modules/ModuleHandler.cs | 4 +- .../UseCases/Modules/Ports/IModulePort.cs | 2 +- .../Permissions/Adapter/PermissionPort.cs | 4 +- .../Input/ChangePermissionStatusRequest.cs | 2 +- .../Input/CreatePermissionRequest.cs | 2 +- .../Input/UpdatePermissionRequest.cs | 5 +- .../UseCases/Permissions/PermissionHandler.cs | 4 +- .../Permissions/Ports/IPermissionPort.cs | 2 +- .../UseCases/Roles/Adapter/RolePort.cs | 4 +- .../Input/AddApplicationToRoleRequest.cs | 2 +- .../Roles/Input/ChangeRoleStatusRequest.cs | 2 +- .../UseCases/Roles/Input/CreateRoleRequest.cs | 2 +- .../Input/RemoveApplicationFromRoleRequest.cs | 2 +- .../UseCases/Roles/Input/UpdateRoleRequest.cs | 4 +- .../UseCases/Roles/Ports/IRolePort.cs | 2 +- .../UseCases/Roles/RoleHandler.cs | 4 +- .../UseCases/Users/Adapter/UserPort.cs | 2 +- .../Input/AcceptUserConsentFormRequest.cs | 12 -- .../Users/Input/AddCompanyToUserRequest.cs | 14 --- .../Users/Input/AddProjectToUserRequest.cs | 14 --- .../Users/Input/ChangeUserStatusRequest.cs | 2 +- .../Users/Input/GetConsentFormPDFRequest.cs | 12 -- .../Input/RemoveCompanyFromUserRequest.cs | 14 --- .../Input/RemoveProjectFromUserRequest.cs | 14 --- .../UseCases/Users/Ports/IUserPort.cs | 2 +- .../UseCases/Users/UserHandler.cs | 100 +-------------- .../Clients/IThalosServiceClient.cs | 25 +--- .../Clients/Requests/ModuleRequest.cs | 2 +- .../Clients/Requests/PermissionRequest.cs | 2 +- .../Clients/Requests/RoleRequest.cs | 2 +- .../Clients/Requests/UserRequest.cs | 2 - .../Core.Thalos.External.csproj | 4 +- .../Controllers/ModuleController.cs | 4 +- .../Controllers/PermissionController.cs | 4 +- .../Controllers/RoleController.cs | 3 +- .../Controllers/UserController.cs | 117 +----------------- .../Extensions/ServiceCollectionExtension.cs | 4 - .../Extensions/SwaggerExtensions.cs | 99 --------------- Core.Thalos.Service.API/Program.cs | 43 ++++--- .../appsettings.Local.json | 22 ++-- 44 files changed, 81 insertions(+), 495 deletions(-) delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/AcceptUserConsentFormRequest.cs delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/AddCompanyToUserRequest.cs delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/AddProjectToUserRequest.cs delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/GetConsentFormPDFRequest.cs delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/RemoveCompanyFromUserRequest.cs delete mode 100644 Core.Thalos.Application/UseCases/Users/Input/RemoveProjectFromUserRequest.cs delete mode 100644 Core.Thalos.Service.API/Extensions/SwaggerExtensions.cs diff --git a/Core.Thalos.Application/UseCases/Modules/Adapter/ModulePort.cs b/Core.Thalos.Application/UseCases/Modules/Adapter/ModulePort.cs index 4e39b5d..4e4c856 100644 --- a/Core.Thalos.Application/UseCases/Modules/Adapter/ModulePort.cs +++ b/Core.Thalos.Application/UseCases/Modules/Adapter/ModulePort.cs @@ -1,5 +1,5 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Modules.Ports; +using Core.Thalos.Application.UseCases.Modules.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Application/UseCases/Modules/Input/ChangeModuleStatusRequest.cs b/Core.Thalos.Application/UseCases/Modules/Input/ChangeModuleStatusRequest.cs index 9b11310..b89444d 100644 --- a/Core.Thalos.Application/UseCases/Modules/Input/ChangeModuleStatusRequest.cs +++ b/Core.Thalos.Application/UseCases/Modules/Input/ChangeModuleStatusRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Blueprint.Mongo; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Modules.Input diff --git a/Core.Thalos.Application/UseCases/Modules/Input/CreateModuleRequest.cs b/Core.Thalos.Application/UseCases/Modules/Input/CreateModuleRequest.cs index d9387c5..ffe519b 100644 --- a/Core.Thalos.Application/UseCases/Modules/Input/CreateModuleRequest.cs +++ b/Core.Thalos.Application/UseCases/Modules/Input/CreateModuleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Modules.Input diff --git a/Core.Thalos.Application/UseCases/Modules/Input/UpdateModuleRequest.cs b/Core.Thalos.Application/UseCases/Modules/Input/UpdateModuleRequest.cs index 2dfa644..27dad01 100644 --- a/Core.Thalos.Application/UseCases/Modules/Input/UpdateModuleRequest.cs +++ b/Core.Thalos.Application/UseCases/Modules/Input/UpdateModuleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Modules.Input diff --git a/Core.Thalos.Application/UseCases/Modules/ModuleHandler.cs b/Core.Thalos.Application/UseCases/Modules/ModuleHandler.cs index 2837324..7d18202 100644 --- a/Core.Thalos.Application/UseCases/Modules/ModuleHandler.cs +++ b/Core.Thalos.Application/UseCases/Modules/ModuleHandler.cs @@ -1,6 +1,6 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Modules.Input; +using Core.Thalos.Application.UseCases.Modules.Input; using Core.Thalos.Application.UseCases.Modules.Ports; +using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients; using Core.Thalos.External.Clients.Requests; using FluentValidation; diff --git a/Core.Thalos.Application/UseCases/Modules/Ports/IModulePort.cs b/Core.Thalos.Application/UseCases/Modules/Ports/IModulePort.cs index d876a8e..822c55c 100644 --- a/Core.Thalos.Application/UseCases/Modules/Ports/IModulePort.cs +++ b/Core.Thalos.Application/UseCases/Modules/Ports/IModulePort.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Modules.Ports diff --git a/Core.Thalos.Application/UseCases/Permissions/Adapter/PermissionPort.cs b/Core.Thalos.Application/UseCases/Permissions/Adapter/PermissionPort.cs index ae9e285..e05b766 100644 --- a/Core.Thalos.Application/UseCases/Permissions/Adapter/PermissionPort.cs +++ b/Core.Thalos.Application/UseCases/Permissions/Adapter/PermissionPort.cs @@ -1,5 +1,5 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Permissions.Ports; +using Core.Thalos.Application.UseCases.Permissions.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Application/UseCases/Permissions/Input/ChangePermissionStatusRequest.cs b/Core.Thalos.Application/UseCases/Permissions/Input/ChangePermissionStatusRequest.cs index 5a51cc2..c31a542 100644 --- a/Core.Thalos.Application/UseCases/Permissions/Input/ChangePermissionStatusRequest.cs +++ b/Core.Thalos.Application/UseCases/Permissions/Input/ChangePermissionStatusRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Blueprint.Mongo; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Permissions.Input diff --git a/Core.Thalos.Application/UseCases/Permissions/Input/CreatePermissionRequest.cs b/Core.Thalos.Application/UseCases/Permissions/Input/CreatePermissionRequest.cs index 1a8ab9d..914a572 100644 --- a/Core.Thalos.Application/UseCases/Permissions/Input/CreatePermissionRequest.cs +++ b/Core.Thalos.Application/UseCases/Permissions/Input/CreatePermissionRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Constants; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Permissions.Input diff --git a/Core.Thalos.Application/UseCases/Permissions/Input/UpdatePermissionRequest.cs b/Core.Thalos.Application/UseCases/Permissions/Input/UpdatePermissionRequest.cs index f74535a..b491a99 100644 --- a/Core.Thalos.Application/UseCases/Permissions/Input/UpdatePermissionRequest.cs +++ b/Core.Thalos.Application/UseCases/Permissions/Input/UpdatePermissionRequest.cs @@ -1,5 +1,4 @@ -using Core.Thalos.Adapters.Common.Constants; -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Permissions.Input @@ -10,7 +9,7 @@ namespace Core.Thalos.Application.UseCases.Permissions.Input public string Name { get; set; } = null!; public string? Description { get; set; } public AccessLevelEnum? AccessLevel { get; set; } = null!; - public StatusEnum Status { get; set; } + public Blueprint.Mongo.StatusEnum Status { get; set; } public bool Validate() { return Id != null; diff --git a/Core.Thalos.Application/UseCases/Permissions/PermissionHandler.cs b/Core.Thalos.Application/UseCases/Permissions/PermissionHandler.cs index ddedb7b..e1f34a9 100644 --- a/Core.Thalos.Application/UseCases/Permissions/PermissionHandler.cs +++ b/Core.Thalos.Application/UseCases/Permissions/PermissionHandler.cs @@ -1,6 +1,6 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Permissions.Input; +using Core.Thalos.Application.UseCases.Permissions.Input; using Core.Thalos.Application.UseCases.Permissions.Ports; +using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients; using Core.Thalos.External.Clients.Requests; using FluentValidation; diff --git a/Core.Thalos.Application/UseCases/Permissions/Ports/IPermissionPort.cs b/Core.Thalos.Application/UseCases/Permissions/Ports/IPermissionPort.cs index fb94f8a..3ae8582 100644 --- a/Core.Thalos.Application/UseCases/Permissions/Ports/IPermissionPort.cs +++ b/Core.Thalos.Application/UseCases/Permissions/Ports/IPermissionPort.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Permissions.Ports diff --git a/Core.Thalos.Application/UseCases/Roles/Adapter/RolePort.cs b/Core.Thalos.Application/UseCases/Roles/Adapter/RolePort.cs index 9a650a6..00c238a 100644 --- a/Core.Thalos.Application/UseCases/Roles/Adapter/RolePort.cs +++ b/Core.Thalos.Application/UseCases/Roles/Adapter/RolePort.cs @@ -1,5 +1,5 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Roles.Ports; +using Core.Thalos.Application.UseCases.Roles.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Application/UseCases/Roles/Input/AddApplicationToRoleRequest.cs b/Core.Thalos.Application/UseCases/Roles/Input/AddApplicationToRoleRequest.cs index 220c3d6..a700d04 100644 --- a/Core.Thalos.Application/UseCases/Roles/Input/AddApplicationToRoleRequest.cs +++ b/Core.Thalos.Application/UseCases/Roles/Input/AddApplicationToRoleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Roles.Input diff --git a/Core.Thalos.Application/UseCases/Roles/Input/ChangeRoleStatusRequest.cs b/Core.Thalos.Application/UseCases/Roles/Input/ChangeRoleStatusRequest.cs index 0dffdc6..ea76650 100644 --- a/Core.Thalos.Application/UseCases/Roles/Input/ChangeRoleStatusRequest.cs +++ b/Core.Thalos.Application/UseCases/Roles/Input/ChangeRoleStatusRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Blueprint.Mongo; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Roles.Input diff --git a/Core.Thalos.Application/UseCases/Roles/Input/CreateRoleRequest.cs b/Core.Thalos.Application/UseCases/Roles/Input/CreateRoleRequest.cs index 73eac5d..3158315 100644 --- a/Core.Thalos.Application/UseCases/Roles/Input/CreateRoleRequest.cs +++ b/Core.Thalos.Application/UseCases/Roles/Input/CreateRoleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using System.Text.Json.Serialization; diff --git a/Core.Thalos.Application/UseCases/Roles/Input/RemoveApplicationFromRoleRequest.cs b/Core.Thalos.Application/UseCases/Roles/Input/RemoveApplicationFromRoleRequest.cs index 684953a..3c6ed23 100644 --- a/Core.Thalos.Application/UseCases/Roles/Input/RemoveApplicationFromRoleRequest.cs +++ b/Core.Thalos.Application/UseCases/Roles/Input/RemoveApplicationFromRoleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Roles.Input diff --git a/Core.Thalos.Application/UseCases/Roles/Input/UpdateRoleRequest.cs b/Core.Thalos.Application/UseCases/Roles/Input/UpdateRoleRequest.cs index 1aa260a..e3efc90 100644 --- a/Core.Thalos.Application/UseCases/Roles/Input/UpdateRoleRequest.cs +++ b/Core.Thalos.Application/UseCases/Roles/Input/UpdateRoleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using System.Text.Json.Serialization; @@ -14,7 +14,7 @@ namespace Core.Thalos.Application.UseCases.Roles.Input public ApplicationsEnum[]? Applications { get; set; } public string[] Modules { get; set; } = null!; public string[] Permissions { get; set; } = null!; - public StatusEnum Status { get; set; } + public Blueprint.Mongo.StatusEnum Status { get; set; } public bool Validate() { diff --git a/Core.Thalos.Application/UseCases/Roles/Ports/IRolePort.cs b/Core.Thalos.Application/UseCases/Roles/Ports/IRolePort.cs index 766a3ec..a0d1688 100644 --- a/Core.Thalos.Application/UseCases/Roles/Ports/IRolePort.cs +++ b/Core.Thalos.Application/UseCases/Roles/Ports/IRolePort.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Roles.Ports diff --git a/Core.Thalos.Application/UseCases/Roles/RoleHandler.cs b/Core.Thalos.Application/UseCases/Roles/RoleHandler.cs index e08b36a..8786b87 100644 --- a/Core.Thalos.Application/UseCases/Roles/RoleHandler.cs +++ b/Core.Thalos.Application/UseCases/Roles/RoleHandler.cs @@ -1,6 +1,6 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Roles.Input; +using Core.Thalos.Application.UseCases.Roles.Input; using Core.Thalos.Application.UseCases.Roles.Ports; +using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients; using Core.Thalos.External.Clients.Requests; using FluentValidation; diff --git a/Core.Thalos.Application/UseCases/Users/Adapter/UserPort.cs b/Core.Thalos.Application/UseCases/Users/Adapter/UserPort.cs index bfc93b9..97f8c55 100644 --- a/Core.Thalos.Application/UseCases/Users/Adapter/UserPort.cs +++ b/Core.Thalos.Application/UseCases/Users/Adapter/UserPort.cs @@ -1,6 +1,6 @@ using Core.Blueprint.Storage.Adapters; -using Core.Thalos.Adapters; using Core.Thalos.Application.UseCases.Users.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Application/UseCases/Users/Input/AcceptUserConsentFormRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/AcceptUserConsentFormRequest.cs deleted file mode 100644 index fc7734a..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/AcceptUserConsentFormRequest.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class AcceptUserConsentFormRequest : ICommand - { - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Input/AddCompanyToUserRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/AddCompanyToUserRequest.cs deleted file mode 100644 index afbed2f..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/AddCompanyToUserRequest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class AddCompanyToUserRequest : Notificator, ICommand - { - public string UserId { get; set; } - public string CompanyId { get; set; } - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Input/AddProjectToUserRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/AddProjectToUserRequest.cs deleted file mode 100644 index 6982de1..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/AddProjectToUserRequest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class AddProjectToUserRequest : Notificator, ICommand - { - public string UserId { get; set; } - public string ProjectId { get; set; } - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Input/ChangeUserStatusRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/ChangeUserStatusRequest.cs index 772f16a..cd69a05 100644 --- a/Core.Thalos.Application/UseCases/Users/Input/ChangeUserStatusRequest.cs +++ b/Core.Thalos.Application/UseCases/Users/Input/ChangeUserStatusRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Blueprint.Mongo; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Users.Input diff --git a/Core.Thalos.Application/UseCases/Users/Input/GetConsentFormPDFRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/GetConsentFormPDFRequest.cs deleted file mode 100644 index c8dfda3..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/GetConsentFormPDFRequest.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class GetConsentFormPDFRequest : ICommand - { - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Input/RemoveCompanyFromUserRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/RemoveCompanyFromUserRequest.cs deleted file mode 100644 index 64b4dcc..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/RemoveCompanyFromUserRequest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class RemoveCompanyFromUserRequest : Notificator, ICommand - { - public string UserId { get; set; } - public string CompanyId { get; set; } - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Input/RemoveProjectFromUserRequest.cs b/Core.Thalos.Application/UseCases/Users/Input/RemoveProjectFromUserRequest.cs deleted file mode 100644 index 43a7930..0000000 --- a/Core.Thalos.Application/UseCases/Users/Input/RemoveProjectFromUserRequest.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Lib.Architecture.BuildingBlocks; - -namespace Core.Thalos.Application.UseCases.Users.Input -{ - public class RemoveProjectFromUserRequest : Notificator, ICommand - { - public string UserId { get; set; } - public string ProjectId { get; set; } - public bool Validate() - { - return true; - } - } -} diff --git a/Core.Thalos.Application/UseCases/Users/Ports/IUserPort.cs b/Core.Thalos.Application/UseCases/Users/Ports/IUserPort.cs index 28ebb8e..7455f12 100644 --- a/Core.Thalos.Application/UseCases/Users/Ports/IUserPort.cs +++ b/Core.Thalos.Application/UseCases/Users/Ports/IUserPort.cs @@ -1,5 +1,5 @@ using Core.Blueprint.Storage.Adapters; -using Core.Thalos.Adapters; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; namespace Core.Thalos.Application.UseCases.Users.Ports diff --git a/Core.Thalos.Application/UseCases/Users/UserHandler.cs b/Core.Thalos.Application/UseCases/Users/UserHandler.cs index 505aed6..5b5ae2c 100644 --- a/Core.Thalos.Application/UseCases/Users/UserHandler.cs +++ b/Core.Thalos.Application/UseCases/Users/UserHandler.cs @@ -1,6 +1,6 @@ -using Core.Thalos.Adapters; -using Core.Thalos.Application.UseCases.Users.Input; +using Core.Thalos.Application.UseCases.Users.Input; using Core.Thalos.Application.UseCases.Users.Ports; +using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients; using Core.Thalos.External.Clients.Requests; using FluentValidation; @@ -15,10 +15,6 @@ namespace Core.Thalos.Application.UseCases.Users IComponentHandler, IComponentHandler, IComponentHandler, - IComponentHandler, - IComponentHandler, - IComponentHandler, - IComponentHandler, IComponentHandler, IComponentHandler, IComponentHandler, @@ -177,8 +173,6 @@ namespace Core.Thalos.Application.UseCases.Users MiddleName = command.MiddleName, LastName = command.LastName, RoleId = command.RoleId, - Companies = command.Companies, - Projects = command.Projects, }; var result = await _thalosDALService.CreateUserAsync(request, command.SendInvitation, cancellationToken).ConfigureAwait(false); @@ -217,8 +211,6 @@ namespace Core.Thalos.Application.UseCases.Users MiddleName = command.MiddleName, LastName = command.LastName, RoleId = command.RoleId, - Companies = command.Companies, - Projects = command.Projects }; var result = await _thalosDALService.UpdateUserAsync(request, request.Id, cancellationToken).ConfigureAwait(false); @@ -281,94 +273,6 @@ namespace Core.Thalos.Application.UseCases.Users } } - public async ValueTask ExecuteAsync(AddCompanyToUserRequest command, CancellationToken cancellationToken = default) - { - try - { - ArgumentNullException.ThrowIfNull(command); - - var result = await _thalosDALService.AddCompanyToUserAsync(command.UserId, command.CompanyId, cancellationToken).ConfigureAwait(false); - - if (result == null) - { - _port.NoContentSuccess(); - return; - } - - _port.Success(result); - } - catch (Exception ex) - { - ApiResponseHelper.EvaluatePort(ex, _port); - } - } - - public async ValueTask ExecuteAsync(RemoveCompanyFromUserRequest command, CancellationToken cancellationToken = default) - { - try - { - ArgumentNullException.ThrowIfNull(command); - - var result = await _thalosDALService.RemoveCompanyToUserAsync(command.UserId, command.CompanyId, cancellationToken).ConfigureAwait(false); - - if (result == null) - { - _port.NoContentSuccess(); - return; - } - - _port.Success(result); - } - catch (Exception ex) - { - ApiResponseHelper.EvaluatePort(ex, _port); - } - } - - public async ValueTask ExecuteAsync(AddProjectToUserRequest command, CancellationToken cancellationToken = default) - { - try - { - ArgumentNullException.ThrowIfNull(command); - - var result = await _thalosDALService.AddProjectToUserAsync(command.UserId, command.ProjectId, cancellationToken).ConfigureAwait(false); - - if (result == null) - { - _port.NoContentSuccess(); - return; - } - - _port.Success(result); - } - catch (Exception ex) - { - ApiResponseHelper.EvaluatePort(ex, _port); - } - } - - public async ValueTask ExecuteAsync(RemoveProjectFromUserRequest command, CancellationToken cancellationToken = default) - { - try - { - ArgumentNullException.ThrowIfNull(command); - - var result = await _thalosDALService.RemoveProjectToUserAsync(command.UserId, command.ProjectId, cancellationToken).ConfigureAwait(false); - - if (result == null) - { - _port.NoContentSuccess(); - return; - } - - _port.Success(result); - } - catch (Exception ex) - { - ApiResponseHelper.EvaluatePort(ex, _port); - } - } - public async ValueTask ExecuteAsync(GetTokenAdapterRequest command, CancellationToken cancellationToken = default) { try diff --git a/Core.Thalos.External/Clients/IThalosServiceClient.cs b/Core.Thalos.External/Clients/IThalosServiceClient.cs index b0cb78a..215d54b 100644 --- a/Core.Thalos.External/Clients/IThalosServiceClient.cs +++ b/Core.Thalos.External/Clients/IThalosServiceClient.cs @@ -1,7 +1,4 @@ -using Core.Blueprint.Storage.Adapters; -using Core.Thalos.Adapters; -using Core.Thalos.Adapters.Common.Constants; -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients.Requests; using Microsoft.AspNetCore.Mvc; using Refit; @@ -35,23 +32,11 @@ namespace Core.Thalos.External.Clients Task LogoutUserAsync([FromRoute] string email, CancellationToken cancellationToken = default); [Patch("/v1/User/" + Routes.ChangeStatus)] - Task ChangeUserStatusAsync([FromRoute] string id, StatusEnum newStatus, CancellationToken cancellationToken = default); + Task ChangeUserStatusAsync([FromRoute] string id, Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Get("/v1/User/{email}/GetTokenAdapter")] Task GetTokenAdapter([FromRoute] string email, CancellationToken cancellationToken = default); - [Post("/v1/User/" + Routes.AddCompany)] - Task AddCompanyToUserAsync([FromRoute] string userId, [FromRoute] string companyId, CancellationToken cancellationToken = default); - - [Delete("/v1/User/" + Routes.RemoveCompany)] - Task RemoveCompanyToUserAsync([FromRoute] string userId, [FromRoute] string companyId, CancellationToken cancellationToken = default); - - [Post("/v1/User/" + Routes.AddProject)] - Task AddProjectToUserAsync([FromRoute] string userId, [FromRoute] string projectId, CancellationToken cancellationToken = default); - - [Delete("/v1/User/" + Routes.RemoveProject)] - Task RemoveProjectToUserAsync([FromRoute] string userId, [FromRoute] string projectId, CancellationToken cancellationToken = default); - [Get("/v1/Role")] Task> GetAllRolesAsync(CancellationToken cancellationToken = default); @@ -65,7 +50,7 @@ namespace Core.Thalos.External.Clients Task UpdateRoleAsync([FromBody] RoleAdapter entity, [FromRoute] string id, CancellationToken cancellationToken = default); [Patch("/v1/Role/" + Routes.ChangeStatus)] - Task ChangeRoleStatusAsync([FromRoute] string id, [FromRoute] StatusEnum newStatus, CancellationToken cancellationToken = default); + Task ChangeRoleStatusAsync([FromRoute] string id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Post("/v1/Role/" + Routes.AddApplication)] Task AddApplicationToRoleAsync([FromRoute] string RoleId, [FromRoute] ApplicationsEnum application, CancellationToken cancellationToken = default); @@ -89,7 +74,7 @@ namespace Core.Thalos.External.Clients Task UpdatePermissionAsync([FromBody] PermissionAdapter entity, [FromRoute] string id, CancellationToken cancellationToken = default); [Patch("/v1/Permission/" + Routes.ChangeStatus)] - Task ChangeStatusPermissionAsync([FromRoute] string id, [FromRoute] StatusEnum newStatus, CancellationToken cancellationToken = default); + Task ChangeStatusPermissionAsync([FromRoute] string id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); [Get("/v1/Module")] Task> GetAllModulesAsync(CancellationToken cancellationToken = default); @@ -107,6 +92,6 @@ namespace Core.Thalos.External.Clients Task UpdateModuleAsync([FromBody] ModuleAdapter entity, [FromRoute] string id, CancellationToken cancellationToken = default); [Patch("/v1/Module/" + Routes.ChangeStatus)] - Task ChangeStatusModuleAsync([FromRoute] string id, [FromRoute] StatusEnum newStatus, CancellationToken cancellationToken = default); + Task ChangeStatusModuleAsync([FromRoute] string id, [FromRoute] Blueprint.Mongo.StatusEnum newStatus, CancellationToken cancellationToken = default); } } diff --git a/Core.Thalos.External/Clients/Requests/ModuleRequest.cs b/Core.Thalos.External/Clients/Requests/ModuleRequest.cs index 9fc0b99..68b6973 100644 --- a/Core.Thalos.External/Clients/Requests/ModuleRequest.cs +++ b/Core.Thalos.External/Clients/Requests/ModuleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using System.Text.Json.Serialization; namespace Core.Thalos.External.Clients.Requests diff --git a/Core.Thalos.External/Clients/Requests/PermissionRequest.cs b/Core.Thalos.External/Clients/Requests/PermissionRequest.cs index 5c8c8cc..5505d92 100644 --- a/Core.Thalos.External/Clients/Requests/PermissionRequest.cs +++ b/Core.Thalos.External/Clients/Requests/PermissionRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Constants; +using Core.Thalos.BuildingBlocks; namespace Core.Thalos.External.Clients.Requests { diff --git a/Core.Thalos.External/Clients/Requests/RoleRequest.cs b/Core.Thalos.External/Clients/Requests/RoleRequest.cs index 9a9d5df..ed2e0a6 100644 --- a/Core.Thalos.External/Clients/Requests/RoleRequest.cs +++ b/Core.Thalos.External/Clients/Requests/RoleRequest.cs @@ -1,4 +1,4 @@ -using Core.Thalos.Adapters.Common.Enums; +using Core.Thalos.BuildingBlocks; using System.Text.Json.Serialization; namespace Core.Thalos.External.Clients.Requests diff --git a/Core.Thalos.External/Clients/Requests/UserRequest.cs b/Core.Thalos.External/Clients/Requests/UserRequest.cs index 51f70bb..9fef535 100644 --- a/Core.Thalos.External/Clients/Requests/UserRequest.cs +++ b/Core.Thalos.External/Clients/Requests/UserRequest.cs @@ -7,7 +7,5 @@ public string? MiddleName { get; set; } public string LastName { get; set; } = null!; public string RoleId { get; set; } = null!; - public string[] Companies { get; set; } = null!; - public string[]? Projects { get; set; } } } diff --git a/Core.Thalos.External/Core.Thalos.External.csproj b/Core.Thalos.External/Core.Thalos.External.csproj index 6776757..271efcf 100644 --- a/Core.Thalos.External/Core.Thalos.External.csproj +++ b/Core.Thalos.External/Core.Thalos.External.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/Core.Thalos.Service.API/Controllers/ModuleController.cs b/Core.Thalos.Service.API/Controllers/ModuleController.cs index 42af179..dd4d2c6 100644 --- a/Core.Thalos.Service.API/Controllers/ModuleController.cs +++ b/Core.Thalos.Service.API/Controllers/ModuleController.cs @@ -1,9 +1,7 @@ using Asp.Versioning; -using Core.Thalos.Adapters; -using Core.Thalos.Adapters.Attributes; -using Core.Thalos.Adapters.Common.Constants; using Core.Thalos.Application.UseCases.Modules.Input; using Core.Thalos.Application.UseCases.Modules.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Service.API/Controllers/PermissionController.cs b/Core.Thalos.Service.API/Controllers/PermissionController.cs index 89c362d..22798ee 100644 --- a/Core.Thalos.Service.API/Controllers/PermissionController.cs +++ b/Core.Thalos.Service.API/Controllers/PermissionController.cs @@ -1,9 +1,7 @@ using Asp.Versioning; -using Core.Thalos.Adapters; -using Core.Thalos.Adapters.Attributes; -using Core.Thalos.Adapters.Common.Constants; using Core.Thalos.Application.UseCases.Permissions.Input; using Core.Thalos.Application.UseCases.Permissions.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Service.API/Controllers/RoleController.cs b/Core.Thalos.Service.API/Controllers/RoleController.cs index f33281d..9547fa7 100644 --- a/Core.Thalos.Service.API/Controllers/RoleController.cs +++ b/Core.Thalos.Service.API/Controllers/RoleController.cs @@ -1,8 +1,7 @@ using Asp.Versioning; -using Core.Thalos.Adapters.Attributes; -using Core.Thalos.Adapters.Common.Constants; using Core.Thalos.Application.UseCases.Roles.Input; using Core.Thalos.Application.UseCases.Roles.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; diff --git a/Core.Thalos.Service.API/Controllers/UserController.cs b/Core.Thalos.Service.API/Controllers/UserController.cs index 2424f22..8354022 100644 --- a/Core.Thalos.Service.API/Controllers/UserController.cs +++ b/Core.Thalos.Service.API/Controllers/UserController.cs @@ -1,9 +1,7 @@ using Asp.Versioning; -using Core.Thalos.Adapters; -using Core.Thalos.Adapters.Attributes; -using Core.Thalos.Adapters.Common.Constants; using Core.Thalos.Application.UseCases.Users.Input; using Core.Thalos.Application.UseCases.Users.Ports; +using Core.Thalos.BuildingBlocks; using Lib.Architecture.BuildingBlocks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -25,10 +23,6 @@ namespace Core.Thalos.Service.API.Controllers private readonly IComponentHandler createUserHandler; private readonly IComponentHandler updateUserHandler; private readonly IComponentHandler ChangeUserStatusHandler; - private readonly IComponentHandler addCompanyToUserHandler; - private readonly IComponentHandler removeCompanyFromUserHandler; - private readonly IComponentHandler addProjectToUserHandler; - private readonly IComponentHandler removeProjectFromUserHandler; private readonly IComponentHandler loginUserHandler; private readonly IComponentHandler logoutUserHandler; private readonly IComponentHandler validateUserHandler; @@ -45,10 +39,6 @@ namespace Core.Thalos.Service.API.Controllers IComponentHandler createUserHandler, IComponentHandler updateUserHandler, IComponentHandler changeUserStatusHandler, - IComponentHandler addCompanyToUserHandler, - IComponentHandler removeCompanyFromUserHandler, - IComponentHandler addProjectToUserHandler, - IComponentHandler removeProjectFromUserHandler, IComponentHandler loginUserHandler, IComponentHandler logoutUserHandler, IComponentHandler validateUserHandler, @@ -62,10 +52,6 @@ namespace Core.Thalos.Service.API.Controllers this.getAllUsersHandler = getAllUsersHandler; this.getUserHandler = getUserHandler; this.getUserByEmailHandler = getUserByEmailHandler; - this.addCompanyToUserHandler = addCompanyToUserHandler; - this.removeCompanyFromUserHandler = removeCompanyFromUserHandler; - this.addProjectToUserHandler = addProjectToUserHandler; - this.removeProjectFromUserHandler = removeProjectFromUserHandler; this.loginUserHandler = loginUserHandler; this.logoutUserHandler = logoutUserHandler; this.validateUserHandler = validateUserHandler; @@ -244,107 +230,6 @@ namespace Core.Thalos.Service.API.Controllers return port.ViewModel; } - /// - /// Adds a company to the user's list of companies. - /// - [HttpPost] - [Route("AddCompany")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] - [ProducesResponseType(StatusCodes.Status500InternalServerError)] - [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] - [Permission("UserManagement.Write")] - public async Task AddCompanyToUserAsync([FromBody] AddCompanyToUserRequest request, - CancellationToken cancellationToken) - { - if (string.IsNullOrEmpty(request.UserId)) { return BadRequest("Invalid user identifier"); } - if (string.IsNullOrEmpty(request.CompanyId)) { return BadRequest("Invalid company identifier"); } - - await addCompanyToUserHandler.ExecuteAsync(request, cancellationToken); - - return port.ViewModel; - } - - /// - /// Removes a company from the user's list of companies. - /// - [HttpDelete] - [Route("RemoveCompany")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] - [ProducesResponseType(StatusCodes.Status500InternalServerError)] - [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] - [Permission("UserManagement.Write")] - public async Task RemoveCompanyFromUserAsync([FromBody] RemoveCompanyFromUserRequest request, - CancellationToken cancellationToken) - { - if (string.IsNullOrEmpty(request.UserId)) { return BadRequest("Invalid user identifier"); } - if (string.IsNullOrEmpty(request.CompanyId)) { return BadRequest("Invalid company identifier"); } - - await removeCompanyFromUserHandler.ExecuteAsync(request, cancellationToken); - - return port.ViewModel; - } - - /// - /// Adds a project to the user's list of projects. - /// - [HttpPost] - [Route("AddProject")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] - [ProducesResponseType(StatusCodes.Status500InternalServerError)] - [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] - [Permission("UserManagement.Write")] - public async Task AddProjectToUserAsync([FromBody] AddProjectToUserRequest request, - CancellationToken cancellationToken) - { - if (string.IsNullOrEmpty(request.UserId)) { return BadRequest("Invalid user identifier"); } - if (string.IsNullOrEmpty(request.ProjectId)) { return BadRequest("Invalid project identifier"); } - - await addProjectToUserHandler.ExecuteAsync(request, cancellationToken); - - return port.ViewModel; - } - - /// - /// Removes a project from the user's list of projects. - /// - [HttpDelete] - [Route("RemoveProject")] - [ProducesResponseType(StatusCodes.Status200OK)] - [ProducesResponseType(StatusCodes.Status204NoContent)] - [ProducesResponseType(StatusCodes.Status400BadRequest)] - [ProducesResponseType(StatusCodes.Status401Unauthorized)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] - [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] - [ProducesResponseType(StatusCodes.Status500InternalServerError)] - [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] - [Permission("UserManagement.Write")] - public async Task RemoveProjectFromUserAsync([FromBody] RemoveProjectFromUserRequest request, - CancellationToken cancellationToken) - { - - if (string.IsNullOrEmpty(request.UserId)) { return BadRequest("Invalid user identifier"); } - if (string.IsNullOrEmpty(request.ProjectId)) { return BadRequest("Invalid project identifier"); } - - await removeProjectFromUserHandler.ExecuteAsync(request, cancellationToken); - - return port.ViewModel; - } - /// /// Validates if a user exists on the database. /// diff --git a/Core.Thalos.Service.API/Extensions/ServiceCollectionExtension.cs b/Core.Thalos.Service.API/Extensions/ServiceCollectionExtension.cs index dbfdeba..58425d6 100644 --- a/Core.Thalos.Service.API/Extensions/ServiceCollectionExtension.cs +++ b/Core.Thalos.Service.API/Extensions/ServiceCollectionExtension.cs @@ -35,10 +35,6 @@ namespace Core.Thalos.Service.API.Extensions services.AddScoped, UserHandler>(); services.AddScoped, UserHandler>(); services.AddScoped, UserHandler>(); - services.AddScoped, UserHandler>(); - services.AddScoped, UserHandler>(); - services.AddScoped, UserHandler>(); - services.AddScoped, UserHandler>(); services.AddScoped, UserHandler>(); services.AddScoped, UserHandler>(); diff --git a/Core.Thalos.Service.API/Extensions/SwaggerExtensions.cs b/Core.Thalos.Service.API/Extensions/SwaggerExtensions.cs deleted file mode 100644 index f4eebf4..0000000 --- a/Core.Thalos.Service.API/Extensions/SwaggerExtensions.cs +++ /dev/null @@ -1,99 +0,0 @@ -using Asp.Versioning.ApiExplorer; -using Microsoft.Extensions.Options; -using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.SwaggerGen; -using Swashbuckle.AspNetCore.SwaggerUI; - -namespace Core.Thalos.Service.API.Extensions -{ - public static class SwaggerExtensions - { - public static void AddSwagger(this IServiceCollection services, IConfiguration configuration) - { - services.AddEndpointsApiExplorer(); - AddSwaggerGen(services, configuration); - services.AddTransient, ConfigureSwaggerOptions>(); - } - - /// - /// Configures Swagger generation with OAuth2 security and XML comments. - /// - /// The to add the services to. - /// The containing Swagger and OAuth2 configuration settings. - public static void AddSwaggerGen(this IServiceCollection services, IConfiguration configuration) - { - services.AddSwaggerGen(c => - { - c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme - { - Description = "JWT Authorization header using the Bearer scheme", - Name = "Authorization", - In = ParameterLocation.Header, - Type = SecuritySchemeType.Http, - Scheme = "bearer", - BearerFormat = "JWT" - }); - - c.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference - { - Type = ReferenceType.SecurityScheme, - Id = "Bearer" - } - }, - Array.Empty() - } - }); - }); - } - public static void ConfigureSwagger(this WebApplication app) - { - //Swagger Stuff Goes Here - - app.UseSwagger(); - app.UseSwaggerUI(options => - { - foreach (var version in app.DescribeApiVersions().Select(version => version.GroupName)) - options.SwaggerEndpoint($"/swagger/{version}/swagger.json", version); - - options.DisplayRequestDuration(); - options.EnableTryItOutByDefault(); - options.DocExpansion(DocExpansion.None); - }); - - // app.MapGet("/", () => Results.Redirect("/swagger/index.html")).WithTags(string.Empty); - } - public static IServiceCollection AddVersioning(this IServiceCollection services) - { - services.AddApiVersioning(options => options.ReportApiVersions = true) - .AddApiExplorer(options => - { - options.GroupNameFormat = "'v'VVV"; - options.SubstituteApiVersionInUrl = true; - }); - - return services; - } - } - public class ConfigureSwaggerOptions(IApiVersionDescriptionProvider provider) : IConfigureOptions - { - private readonly IApiVersionDescriptionProvider _provider = provider; - - public void Configure(SwaggerGenOptions options) - { - foreach (var description in _provider.ApiVersionDescriptions) - options.SwaggerDoc(description.GroupName, new() - { - Title = AppDomain.CurrentDomain.FriendlyName, - Version = description.ApiVersion.ToString() - }); - - - options.CustomSchemaIds(type => type.ToString().Replace("+", ".")); - } - } -} diff --git a/Core.Thalos.Service.API/Program.cs b/Core.Thalos.Service.API/Program.cs index 187d633..57ef935 100644 --- a/Core.Thalos.Service.API/Program.cs +++ b/Core.Thalos.Service.API/Program.cs @@ -1,6 +1,7 @@ +using Core.Blueprint.KeyVault.Configuration; using Core.Blueprint.Logging.Configuration; -using Core.Thalos.Adapters.Extensions; -using Core.Thalos.BuildingBlocks.Authentication.Extensions; +using Core.Thalos.BuildingBlocks; +using Core.Thalos.BuildingBlocks.Configuration; using Core.Thalos.External.ClientConfiguration; using Core.Thalos.Service.API.Extensions; using Microsoft.AspNetCore.HttpLogging; @@ -9,16 +10,21 @@ using System.Text.Json.Serialization; var builder = WebApplication.CreateBuilder(args); -builder.Services.ConfigureAuthentication(builder.Configuration); - -builder.Services.AddLogs(builder); - -builder.Services.AddEndpointsApiExplorer(); -builder.Services.AddSwaggerGen(); builder.Configuration .AddUserSecrets(Assembly.GetExecutingAssembly()) .AddEnvironmentVariables(); +var services = builder.Services.AddKeyVault(builder.Configuration); + +var authSettings = await AuthHelper.GetAuthSettings(builder.Services, builder, "thalos_common"); + +builder.Services.ConfigureAuthentication(builder.Configuration, authSettings); + +builder.Services.AddLogs(builder); + +builder.Services.AddEndpointsApiExplorer(); +builder.Services.AddSwaggerGen(builder.Configuration, "Core.Thalos.Service.API.xml", authSettings); +builder.Services.AddVersioning(builder.Configuration); builder.Services.RegisterExternalLayer(builder.Configuration); builder.Services.AddServiceConfigurationLayer(); builder.Services.AddResponseCompression(); @@ -43,11 +49,6 @@ builder.Host.ConfigureServices((context, services) => options.SerializerOptions.Converters.Add(new JsonStringEnumConverter()); }); - services - .AddEndpointsApiExplorer() - .AddVersioning() - .AddSwagger(builder.Configuration); - services.AddHealthChecks(); services.AddHttpLogging(options => options.LoggingFields = HttpLoggingFields.All); @@ -65,20 +66,22 @@ builder.Host.ConfigureServices((context, services) => var app = builder.Build(); +app.UseLogging(builder.Configuration); +app.UseSwaggerUI(builder.Configuration, authSettings); +app.ConfigureSwagger(builder.Configuration); + app.UseRouting(); -app.UseSwagger(); -app.UseSwaggerUI(); -app.UseAuthentication(); -app.UseAuthorization(); -app.MapControllers(); app.UseCors(); -app.ConfigureSwagger(); app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseResponseCompression(); app.UseOutputCache(); app.UseResponseCaching(); -app.UseLogging(builder.Configuration); + +app.UseAuthentication(); +app.UseAuthorization(); + +app.MapControllers(); app.MapHealthChecks("/health"); app.Run(); diff --git a/Core.Thalos.Service.API/appsettings.Local.json b/Core.Thalos.Service.API/appsettings.Local.json index 86b7c29..ffded8d 100644 --- a/Core.Thalos.Service.API/appsettings.Local.json +++ b/Core.Thalos.Service.API/appsettings.Local.json @@ -9,17 +9,17 @@ "LocalGateways": { "ThalosDAL": "https://localhost:7031/api" }, - "Authentication": { - "Google": { - "ClientId": "128345072002-mtfdgpcur44o9tbd7q6e0bb9qnp2crfp.apps.googleusercontent.com", - "ClientSecret": "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", - "ApplicationName": "Thalos", - "RedirectUri": "https://localhost:7239/api/v1/Authentication/callback" - } + "ServiceSettings": { + "ApplicationName": "thalos", + "LayerName": "service" }, - "JwtIssuerOptions": { - "Audience": "https://localhost:7239/", - "Issuer": "webApi" + "Vault": { + "Address": "http://100.123.31.103:8200", + "Token": "hvs.e37LQvLuPhTd5ALS5QQ03Cwm", + "SecretMount": "secret" }, - "SecretKey": "iNivDmHLpUA223sqsfhqGbMRdRj1PVkH1" + "IdentityProviders": { + "Google": true, + "Azure": true + } }