From 69e21e276cf1099e14f6c598a229ec14bf66ebd1 Mon Sep 17 00:00:00 2001 From: Sergio Matias Date: Thu, 7 Aug 2025 18:37:26 -0600 Subject: [PATCH] Add tenant services and delete services --- .../Controllers/AuthenticationController.cs | 2 +- .../Controllers/ModuleController.cs | 8 +- .../Controllers/PermissionController.cs | 9 +- .../Controllers/RoleController.cs | 8 +- .../Controllers/TenantController.cs | 196 ++++++++++++++++++ .../Controllers/UserController.cs | 6 +- .../Clients/Thalos/IThalosServiceClient.cs | 32 +++ .../Modules/ChangeModuleStatusRequest.cs | 2 +- .../Requests/Modules/DeleteModuleRequest.cs | 7 + .../Requests/Modules/GetModuleRequest.cs | 2 +- .../Requests/Modules/UpdateModuleRequest.cs | 2 +- .../ChangePermissionStatusRequest.cs | 2 +- .../Permissions/DeletePermissionRequest.cs | 7 + .../Permissions/GetPermissionRequest.cs | 2 +- .../Permissions/UpdatePermissionRequest.cs | 2 +- .../Requests/Roles/ChangeRoleStatusRequest.cs | 2 +- .../Requests/Roles/DeleteRoleRequest.cs | 7 + .../Thalos/Requests/Roles/GetRoleRequest.cs | 2 +- .../Requests/Roles/UpdateRoleRequest.cs | 2 +- .../Tenants/ChangeTenantStatusRequest.cs | 10 + .../Requests/Tenants/CreateTenantRequest.cs | 31 +++ .../Requests/Tenants/DeleteTenantRequest.cs | 7 + .../Requests/Tenants/GetAllTenantsRequest.cs | 6 + .../Requests/Tenants/GetTenantRequest.cs | 7 + .../Requests/Tenants/UpdateTenantRequest.cs | 39 ++++ .../Requests/Users/ChangeUserStatusRequest.cs | 2 +- .../Requests/Users/DeleteUserRequest.cs | 7 + .../Thalos/Requests/Users/GetUserRequest.cs | 2 +- .../Requests/Users/UpdateUserRequest.cs | 2 +- .../Core.Thalos.External.csproj | 2 +- 30 files changed, 385 insertions(+), 30 deletions(-) create mode 100644 Core.Thalos.BFF.Api/Controllers/TenantController.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Modules/DeleteModuleRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Permissions/DeletePermissionRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Roles/DeleteRoleRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/ChangeTenantStatusRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/CreateTenantRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/DeleteTenantRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetAllTenantsRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetTenantRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Tenants/UpdateTenantRequest.cs create mode 100644 Core.Thalos.External/Clients/Thalos/Requests/Users/DeleteUserRequest.cs diff --git a/Core.Thalos.BFF.Api/Controllers/AuthenticationController.cs b/Core.Thalos.BFF.Api/Controllers/AuthenticationController.cs index 6ecc9d4..b30dda2 100644 --- a/Core.Thalos.BFF.Api/Controllers/AuthenticationController.cs +++ b/Core.Thalos.BFF.Api/Controllers/AuthenticationController.cs @@ -93,7 +93,7 @@ namespace Core.Thalos.BFF.Api.Controllers [HttpGet] [Route(Routes.RefreshToken)] [ProducesResponseType(typeof(UserAdapter), StatusCodes.Status200OK)] - //[Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] + [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] public async Task RefreshCustomTokenAsync(CancellationToken cancellationToken) { var tokenAdapter = new TokenAdapter(); diff --git a/Core.Thalos.BFF.Api/Controllers/ModuleController.cs b/Core.Thalos.BFF.Api/Controllers/ModuleController.cs index de504d7..eb5c493 100644 --- a/Core.Thalos.BFF.Api/Controllers/ModuleController.cs +++ b/Core.Thalos.BFF.Api/Controllers/ModuleController.cs @@ -21,7 +21,7 @@ namespace Core.Thalos.BFF.Api.Controllers public class ModuleController(IThalosServiceClient thalosServiceClient, ILogger logger) : BaseController(logger) { /// - /// Gets all the modules. + /// Gets all modules. /// [HttpGet("GetAll")] [ProducesResponseType(StatusCodes.Status200OK)] @@ -47,7 +47,7 @@ namespace Core.Thalos.BFF.Api.Controllers } /// - /// Gets all the modules by module identifiers. + /// Gets all modules by module identifiers. /// /// The request containing the list of module identifiers. /// Cancellation token for the asynchronous operation. @@ -137,7 +137,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(GetModuleByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) return BadRequest("Invalid module identifier"); + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid module identifier"); return await Handle(() => thalosServiceClient.GetModuleByIdService(request, cancellationToken)).ConfigureAwait(false); } @@ -201,7 +201,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(ChangeModuleStatusService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid module identifier"); } + if (string.IsNullOrEmpty(request._Id)) { return BadRequest("Invalid module identifier"); } return await Handle(() => thalosServiceClient.ChangeModuleStatusService(request, cancellationToken)).ConfigureAwait(false); } diff --git a/Core.Thalos.BFF.Api/Controllers/PermissionController.cs b/Core.Thalos.BFF.Api/Controllers/PermissionController.cs index a85ee20..ce0e821 100644 --- a/Core.Thalos.BFF.Api/Controllers/PermissionController.cs +++ b/Core.Thalos.BFF.Api/Controllers/PermissionController.cs @@ -5,7 +5,6 @@ using Lib.Architecture.BuildingBlocks; using LSA.Dashboard.External.Clients.Dashboard; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Microsoft.Graph; using System.Text.Json; namespace Core.Thalos.BFF.Api.Controllers @@ -22,7 +21,7 @@ namespace Core.Thalos.BFF.Api.Controllers public class PermissionController(IThalosServiceClient thalosServiceClient, ILogger logger) : BaseController(logger) { /// - /// Gets all the permissions. + /// Gets all permissions. /// [HttpGet("GetAll")] [ProducesResponseType(StatusCodes.Status200OK)] @@ -48,7 +47,7 @@ namespace Core.Thalos.BFF.Api.Controllers } /// - /// Gets all the permissions by permission identifiers. + /// Gets all permissions by permission identifiers. /// /// The request containing the list of permission identifiers. /// Cancellation token for the asynchronous operation. @@ -136,7 +135,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(GetPermissionByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) return BadRequest("Invalid permission identifier"); + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid permission identifier"); return await Handle(() => thalosServiceClient.GetPermissionByIdService(request, cancellationToken)).ConfigureAwait(false); } @@ -198,7 +197,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(ChangePermissionStatusService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid permission identifier"); } + if (string.IsNullOrEmpty(request._Id)) { return BadRequest("Invalid permission identifier"); } return await Handle(() => thalosServiceClient.ChangePermissionStatusService(request, cancellationToken)).ConfigureAwait(false); } diff --git a/Core.Thalos.BFF.Api/Controllers/RoleController.cs b/Core.Thalos.BFF.Api/Controllers/RoleController.cs index 79217f0..a335bc8 100644 --- a/Core.Thalos.BFF.Api/Controllers/RoleController.cs +++ b/Core.Thalos.BFF.Api/Controllers/RoleController.cs @@ -21,7 +21,7 @@ namespace Core.Thalos.BFF.Api.Controllers public class RoleController(IThalosServiceClient thalosServiceClient, ILogger logger) : BaseController(logger) { /// - /// Gets all the roles. + /// Gets all roles. /// [HttpGet("GetAll")] [ProducesResponseType(StatusCodes.Status200OK)] @@ -101,7 +101,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(GetRoleByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) return BadRequest("Invalid role identifier"); + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid role identifier"); return await Handle(() => thalosServiceClient.GetRoleByIdService(request, cancellationToken)).ConfigureAwait(false); } @@ -133,7 +133,7 @@ namespace Core.Thalos.BFF.Api.Controllers if (string.IsNullOrEmpty(request.Name)) return BadRequest("Invalid role name"); - if (string.IsNullOrEmpty(request.Id)) return BadRequest("Invalid role identifier"); + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid role identifier"); if (string.IsNullOrEmpty(request.Description)) return BadRequest("Invalid role description"); @@ -172,7 +172,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(ChangeRoleStatusService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid role identifier"); } + if (string.IsNullOrEmpty(request._Id)) { return BadRequest("Invalid role identifier"); } return await Handle(() => thalosServiceClient.ChangeRoleStatusService(request, cancellationToken)).ConfigureAwait(false); } diff --git a/Core.Thalos.BFF.Api/Controllers/TenantController.cs b/Core.Thalos.BFF.Api/Controllers/TenantController.cs new file mode 100644 index 0000000..7aada7a --- /dev/null +++ b/Core.Thalos.BFF.Api/Controllers/TenantController.cs @@ -0,0 +1,196 @@ +using Asp.Versioning; +using Core.Thalos.BuildingBlocks; +using Core.Thalos.External.Clients.Thalos.Requests.Tenants; +using Lib.Architecture.BuildingBlocks; +using LSA.Dashboard.External.Clients.Dashboard; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System.Text.Json; + +namespace Core.Thalos.BFF.Api.Controllers +{ + /// + /// Handles all requests for Tenant authentication. + /// + [ApiVersion("1.0")] + [Route("api/v{version:apiVersion}/[controller]")] + [Consumes("application/json")] + [Produces("application/json")] + [ApiController] + [Authorize(AuthenticationSchemes = Schemes.DefaultScheme)] + public class TenantController(IThalosServiceClient thalosServiceClient, ILogger logger) : BaseController(logger) + { + /// + /// Gets all Tenants. + /// + [HttpGet("GetAll")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + [Permission("TenantManagement.Read, RoleManagement.Read")] + public async Task GetAllTenantsService(CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(GetAllTenantsService)} - Request received - Payload: "); + + return await Handle(() => thalosServiceClient.GetAllTenantsService(new GetAllTenantsRequest { }, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(GetAllTenantsService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload"); + throw; + } + } + + /// + /// Creates a new Tenant. + /// + [HttpPost("Create")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + [Permission("TenantManagement.Write")] + public async Task CreateTenantService(CreateTenantRequest newTenant, CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(CreateTenantService)} - Request received - Payload: {JsonSerializer.Serialize(newTenant)}"); + + if (newTenant == null) return BadRequest("Invalid Tenant object"); + + if (string.IsNullOrEmpty(newTenant.Name)) return BadRequest("Invalid Tenant name"); + + return await Handle(() => thalosServiceClient.CreateTenantService(newTenant, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(CreateTenantService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload {JsonSerializer.Serialize(newTenant)}"); + throw; + } + } + + /// + /// Gets the Tenant by identifier. + /// + [HttpPost("GetById")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + [Permission("TenantManagement.Read")] + public async Task GetTenantByIdService(GetTenantRequest request, CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(GetTenantByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); + + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid Tenant identifier"); + + return await Handle(() => thalosServiceClient.GetTenantByIdService(request, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(GetTenantByIdService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload {JsonSerializer.Serialize(request)}"); + throw; + } + } + + /// + /// Updates a full Tenant by identifier. + /// + [HttpPut("Update")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + [Permission("TenantManagement.Write")] + public async Task UpdateTenantService(UpdateTenantRequest newTenant, CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(UpdateTenantService)} - Request received - Payload: {JsonSerializer.Serialize(newTenant)}"); + + if (newTenant == null) return BadRequest("Invalid Tenant object"); + + if (string.IsNullOrEmpty(newTenant.Name)) return BadRequest("Invalid Tenant name"); + + + return await Handle(() => thalosServiceClient.UpdateTenantService(newTenant, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(UpdateTenantService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload {JsonSerializer.Serialize(newTenant)}"); + throw; + } + } + + /// + /// Changes the status of the Tenant. + /// + [HttpPatch] + [Route("ChangeStatus")] + [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)] + [Permission("TenantManagement.Write")] + public async Task ChangeTenantStatusService([FromBody] ChangeTenantStatusRequest request, CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(ChangeTenantStatusService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); + + if (string.IsNullOrEmpty(request._Id)) { return BadRequest("Invalid Tenant identifier"); } + + return await Handle(() => thalosServiceClient.ChangeTenantStatusService(request, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(ChangeTenantStatusService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload {JsonSerializer.Serialize(request)}"); + throw; + } + } + + /// + /// Deletes the Tenant by identifier. + /// + [HttpDelete("Delete")] + [ProducesResponseType(StatusCodes.Status200OK)] + [ProducesResponseType(StatusCodes.Status400BadRequest)] + [ProducesResponseType(StatusCodes.Status401Unauthorized)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status412PreconditionFailed)] + [ProducesResponseType(typeof(Notification), StatusCodes.Status422UnprocessableEntity)] + [ProducesResponseType(StatusCodes.Status500InternalServerError)] + [Permission("TenantManagement.Write")] + public async Task DeleteTenantByIdService(DeleteTenantRequest request, CancellationToken cancellationToken) + { + try + { + logger.LogInformation($"{nameof(DeleteTenantByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); + + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid Tenant identifier"); + + return await Handle(() => thalosServiceClient.DeleteTenantByIdService(request, cancellationToken)).ConfigureAwait(false); + } + catch (Exception ex) + { + logger.LogError($"{nameof(DeleteTenantByIdService)} - An Error Occurred- {ex.Message} - {ex.InnerException} - {ex.StackTrace} - with payload {JsonSerializer.Serialize(request)}"); + throw; + } + } + } +} diff --git a/Core.Thalos.BFF.Api/Controllers/UserController.cs b/Core.Thalos.BFF.Api/Controllers/UserController.cs index b9d003e..383f127 100644 --- a/Core.Thalos.BFF.Api/Controllers/UserController.cs +++ b/Core.Thalos.BFF.Api/Controllers/UserController.cs @@ -21,7 +21,7 @@ namespace Core.Thalos.BFF.Api.Controllers public class UserController(IThalosServiceClient thalosServiceClient, ILogger logger) : BaseController(logger) { /// - /// Gets all the users. + /// Gets all users. /// [HttpGet("GetAll")] [ProducesResponseType(StatusCodes.Status200OK)] @@ -102,7 +102,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(GetUserByIdService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) return BadRequest("Invalid user identifier"); + if (string.IsNullOrEmpty(request._Id)) return BadRequest("Invalid user identifier"); return await Handle(() => thalosServiceClient.GetUserByIdService(request, cancellationToken)).ConfigureAwait(false); } @@ -257,7 +257,7 @@ namespace Core.Thalos.BFF.Api.Controllers { logger.LogInformation($"{nameof(ChangeUserStatusService)} - Request received - Payload: {JsonSerializer.Serialize(request)}"); - if (string.IsNullOrEmpty(request.Id)) { return BadRequest("Invalid user identifier"); } + if (string.IsNullOrEmpty(request._Id)) { return BadRequest("Invalid user identifier"); } return await Handle(() => thalosServiceClient.ChangeUserStatusService(request, cancellationToken)).ConfigureAwait(false); } diff --git a/Core.Thalos.External/Clients/Thalos/IThalosServiceClient.cs b/Core.Thalos.External/Clients/Thalos/IThalosServiceClient.cs index 152698f..185d325 100644 --- a/Core.Thalos.External/Clients/Thalos/IThalosServiceClient.cs +++ b/Core.Thalos.External/Clients/Thalos/IThalosServiceClient.cs @@ -2,6 +2,7 @@ using Core.Thalos.Application.UseCases.Users.Input; using Core.Thalos.BuildingBlocks; using Core.Thalos.External.Clients.Thalos.Requests.Permissions; +using Core.Thalos.External.Clients.Thalos.Requests.Tenants; using Core.Thalos.External.Clients.Thalos.Requests.Users; using Microsoft.AspNetCore.Mvc; using Refit; @@ -31,6 +32,9 @@ namespace LSA.Dashboard.External.Clients.Dashboard [Put("/v1/User/Update")] Task> UpdateUserService([Header("TrackingId")][Body] UpdateUserRequest request, CancellationToken cancellationToken = default); + [Delete("/v1/User/Delete")] + Task> DeleteUserByIdService([Header("TrackingId")][Body] DeleteUserRequest request, CancellationToken cancellationToken = default); + [Patch("/v1/User/LoginUser")] Task> LoginUserService([Header("TrackingId")][Body] LoginUserRequest request, CancellationToken cancellationToken = default); @@ -61,6 +65,9 @@ namespace LSA.Dashboard.External.Clients.Dashboard [Patch("/v1/Role/ChangeStatus")] Task> ChangeRoleStatusService([Header("TrackingId")][Body] ChangeRoleStatusRequest request, CancellationToken cancellationToken = default); + [Delete("/v1/Role/Delete")] + Task> DeleteRoleByIdService([Header("TrackingId")][Body] DeleteRoleRequest request, CancellationToken cancellationToken = default); + [Post("/v1/Role/AddApplication")] Task> AddApplicationToRoleService([Header("TrackingId")][Body] AddApplicationToRoleRequest request, CancellationToken cancellationToken = default); @@ -85,6 +92,9 @@ namespace LSA.Dashboard.External.Clients.Dashboard [Patch("/v1/Permission/ChangeStatus")] Task> ChangePermissionStatusService([Header("TrackingId")][Body] ChangePermissionStatusRequest request, CancellationToken cancellationToken = default); + [Delete("/v1/Permission/Delete")] + Task> DeletePermissionByIdService([Header("TrackingId")][Body] DeletePermissionRequest request, CancellationToken cancellationToken = default); + [Post("/v1/Module/Create")] Task> CreateModuleService([Header("TrackingId")][Body] CreateModuleRequest request, CancellationToken cancellationToken = default); @@ -102,5 +112,27 @@ namespace LSA.Dashboard.External.Clients.Dashboard [Patch("/v1/Module/ChangeStatus")] Task> ChangeModuleStatusService([Header("TrackingId")][Body] ChangeModuleStatusRequest request, CancellationToken cancellationToken = default); + + [Delete("/v1/Module/Delete")] + Task> DeleteModuleByIdService([Header("TrackingId")][Body] DeleteModuleRequest request, CancellationToken cancellationToken = default); + + + [Post("/v1/Tenant/Create")] + Task> CreateTenantService([Header("TrackingId")][Body] CreateTenantRequest request, CancellationToken cancellationToken = default); + + [Post("/v1/Tenant/GetById")] + Task> GetTenantByIdService([Header("TrackingId")][Body] GetTenantRequest request, CancellationToken cancellationToken = default); + + [Get("/v1/Tenant/GetAll")] + Task>> GetAllTenantsService([Header("TrackingId")][Body] GetAllTenantsRequest request, CancellationToken cancellationToken = default); + + [Put("/v1/Tenant/Update")] + Task> UpdateTenantService([Header("TrackingId")][Body] UpdateTenantRequest request, CancellationToken cancellationToken = default); + + [Patch("/v1/Tenant/ChangeStatus")] + Task> ChangeTenantStatusService([Header("TrackingId")][Body] ChangeTenantStatusRequest request, CancellationToken cancellationToken = default); + + [Delete("/v1/Tenant/Delete")] + Task> DeleteTenantByIdService([Header("TrackingId")][Body] DeleteTenantRequest request, CancellationToken cancellationToken = default); } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Modules/ChangeModuleStatusRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Modules/ChangeModuleStatusRequest.cs index 4ee0e32..19c0f4f 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Modules/ChangeModuleStatusRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Modules/ChangeModuleStatusRequest.cs @@ -4,7 +4,7 @@ namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions { public class ChangeModuleStatusRequest { - public string Id { get; set; } + public string _Id { get; set; } public StatusEnum Status { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Modules/DeleteModuleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Modules/DeleteModuleRequest.cs new file mode 100644 index 0000000..e3b70f1 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Modules/DeleteModuleRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions +{ + public class DeleteModuleRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Modules/GetModuleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Modules/GetModuleRequest.cs index 6ea9a9a..4b6924a 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Modules/GetModuleRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Modules/GetModuleRequest.cs @@ -2,6 +2,6 @@ { public class GetModuleRequest { - public string Id { get; set; } + public string _Id { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Modules/UpdateModuleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Modules/UpdateModuleRequest.cs index 9ba2e3f..14f725b 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Modules/UpdateModuleRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Modules/UpdateModuleRequest.cs @@ -5,7 +5,7 @@ namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions { public class UpdateModuleRequest { - public string Id { get; set; } = null!; + public string _Id { get; set; } = null!; public string Name { get; set; } = null!; public string? Description { get; set; } public string? Icon { get; set; } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/ChangePermissionStatusRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/ChangePermissionStatusRequest.cs index 8dd43dd..15409b3 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/ChangePermissionStatusRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/ChangePermissionStatusRequest.cs @@ -4,7 +4,7 @@ namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions { public class ChangePermissionStatusRequest { - public string Id { get; set; } + public string _Id { get; set; } public StatusEnum Status { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/DeletePermissionRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/DeletePermissionRequest.cs new file mode 100644 index 0000000..55539ba --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/DeletePermissionRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions +{ + public class DeletePermissionRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/GetPermissionRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/GetPermissionRequest.cs index 8bfa8fc..172806d 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/GetPermissionRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/GetPermissionRequest.cs @@ -2,6 +2,6 @@ { public class GetPermissionRequest { - public string Id { get; set; } + public string _Id { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/UpdatePermissionRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/UpdatePermissionRequest.cs index d1b9d50..f0f707e 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Permissions/UpdatePermissionRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Permissions/UpdatePermissionRequest.cs @@ -5,7 +5,7 @@ namespace Core.Thalos.External.Clients.Thalos.Requests.Permissions { public class UpdatePermissionRequest { - public string Id { get; set; } = null!; + public string _Id { get; set; } = null!; public string Name { get; set; } = null!; public string? Description { get; set; } public AccessLevelEnum? AccessLevel { get; set; } = null!; diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Roles/ChangeRoleStatusRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Roles/ChangeRoleStatusRequest.cs index ae6d376..d3d5412 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Roles/ChangeRoleStatusRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Roles/ChangeRoleStatusRequest.cs @@ -4,7 +4,7 @@ namespace Core.Thalos.Application.UseCases.Roles.Input { public class ChangeRoleStatusRequest { - public string Id { get; set; } + public string _Id { get; set; } public StatusEnum Status { get; set; } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Roles/DeleteRoleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Roles/DeleteRoleRequest.cs new file mode 100644 index 0000000..020acb9 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Roles/DeleteRoleRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.Application.UseCases.Roles.Input +{ + public class DeleteRoleRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Roles/GetRoleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Roles/GetRoleRequest.cs index 40240a0..4a1fd4b 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Roles/GetRoleRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Roles/GetRoleRequest.cs @@ -2,6 +2,6 @@ { public class GetRoleRequest { - public string Id { get; set; } + public string _Id { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Roles/UpdateRoleRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Roles/UpdateRoleRequest.cs index ca782c9..929eef1 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Roles/UpdateRoleRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Roles/UpdateRoleRequest.cs @@ -6,7 +6,7 @@ namespace Core.Thalos.Application.UseCases.Roles.Input { public class UpdateRoleRequest { - public string Id { get; set; } = null!; + public string _Id { get; set; } = null!; public string Name { get; set; } = null!; public string? Description { get; set; } [JsonConverter(typeof(EnumArrayJsonConverter))] diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/ChangeTenantStatusRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/ChangeTenantStatusRequest.cs new file mode 100644 index 0000000..87564c9 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/ChangeTenantStatusRequest.cs @@ -0,0 +1,10 @@ +using Core.Blueprint.Mongo; + +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class ChangeTenantStatusRequest + { + public string _Id { get; set; } + public StatusEnum Status { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/CreateTenantRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/CreateTenantRequest.cs new file mode 100644 index 0000000..a0b3467 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/CreateTenantRequest.cs @@ -0,0 +1,31 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class CreateTenantRequest + { + public string Name { get; set; } = null!; + + public string TaxIdentifier { get; set; } = null!; + + public string AddressLine1 { get; set; } = null!; + + public string? AddressLine2 { get; set; } + + public string City { get; set; } = null!; + + public string State { get; set; } = null!; + + public string Country { get; set; } = null!; + + public string PostalCode { get; set; } = null!; + + public string ContactEmail { get; set; } = null!; + + public string ContactPhone { get; set; } = null!; + + public string? Website { get; set; } + + public string? ConnectionString { get; set; } + + public bool Isolated { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/DeleteTenantRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/DeleteTenantRequest.cs new file mode 100644 index 0000000..9761777 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/DeleteTenantRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class DeleteTenantRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetAllTenantsRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetAllTenantsRequest.cs new file mode 100644 index 0000000..f56a3d6 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetAllTenantsRequest.cs @@ -0,0 +1,6 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class GetAllTenantsRequest + { + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetTenantRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetTenantRequest.cs new file mode 100644 index 0000000..1153f40 --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/GetTenantRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class GetTenantRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Tenants/UpdateTenantRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/UpdateTenantRequest.cs new file mode 100644 index 0000000..144938c --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Tenants/UpdateTenantRequest.cs @@ -0,0 +1,39 @@ +namespace Core.Thalos.External.Clients.Thalos.Requests.Tenants +{ + public class UpdateTenantRequest + { + public string Name { get; set; } = null!; + + public string TaxIdentifier { get; set; } = null!; + + public string AddressLine1 { get; set; } = null!; + + public string? AddressLine2 { get; set; } + + public string City { get; set; } = null!; + + public string State { get; set; } = null!; + + public string Country { get; set; } = null!; + + public string PostalCode { get; set; } = null!; + + public string ContactEmail { get; set; } = null!; + + public string ContactPhone { get; set; } = null!; + + public string? Website { get; set; } + + public string? ConnectionString { get; set; } + + public bool Isolated { get; set; } + public string _Id { get; set; } = null!; + public string Id { get; init; } = null!; + public DateTime CreatedAt { get; set; } + public string? CreatedBy { get; set; } + public DateTime? UpdatedAt { get; set; } + public string? UpdatedBy { get; set; } + + public Blueprint.Mongo.StatusEnum Status { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Users/ChangeUserStatusRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Users/ChangeUserStatusRequest.cs index e72d738..45534e1 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Users/ChangeUserStatusRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Users/ChangeUserStatusRequest.cs @@ -4,7 +4,7 @@ namespace Core.Thalos.Application.UseCases.Users.Input { public class ChangeUserStatusRequest { - public string Id { get; set; } + public string _Id { get; set; } public StatusEnum Status { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Users/DeleteUserRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Users/DeleteUserRequest.cs new file mode 100644 index 0000000..7c211bb --- /dev/null +++ b/Core.Thalos.External/Clients/Thalos/Requests/Users/DeleteUserRequest.cs @@ -0,0 +1,7 @@ +namespace Core.Thalos.Application.UseCases.Users.Input +{ + public class DeleteUserRequest + { + public string _Id { get; set; } + } +} diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Users/GetUserRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Users/GetUserRequest.cs index 0890d47..bafbaec 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Users/GetUserRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Users/GetUserRequest.cs @@ -2,6 +2,6 @@ { public class GetUserRequest { - public string Id { get; set; } + public string _Id { get; set; } } } diff --git a/Core.Thalos.External/Clients/Thalos/Requests/Users/UpdateUserRequest.cs b/Core.Thalos.External/Clients/Thalos/Requests/Users/UpdateUserRequest.cs index cf2caa0..9c55680 100644 --- a/Core.Thalos.External/Clients/Thalos/Requests/Users/UpdateUserRequest.cs +++ b/Core.Thalos.External/Clients/Thalos/Requests/Users/UpdateUserRequest.cs @@ -4,7 +4,7 @@ namespace Core.Thalos.Application.UseCases.Users.Input { public class UpdateUserRequest { - public string Id { get; set; } = null!; + public string _Id { get; set; } = null!; public string Email { get; set; } = null!; public string Name { get; set; } = null!; public string? MiddleName { get; set; } diff --git a/Core.Thalos.External/Core.Thalos.External.csproj b/Core.Thalos.External/Core.Thalos.External.csproj index 1019253..f091a3f 100644 --- a/Core.Thalos.External/Core.Thalos.External.csproj +++ b/Core.Thalos.External/Core.Thalos.External.csproj @@ -7,7 +7,7 @@ - + -- 2.49.1