Add tenant services
This commit is contained in:
		| @@ -3,6 +3,7 @@ | ||||
| //     AgileWebs | ||||
| // </copyright> | ||||
| // *********************************************************************** | ||||
|  | ||||
| using Asp.Versioning; | ||||
| using Core.Thalos.BuildingBlocks; | ||||
| using Core.Thalos.Domain.Contexts.Onboarding.Request; | ||||
| @@ -25,11 +26,11 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|     public class RoleController(IRoleProvider service) : ControllerBase | ||||
|     { | ||||
|         /// <summary> | ||||
|         /// Gets all the roles. | ||||
|         /// Gets all roles. | ||||
|         /// </summary> | ||||
|         /// <returns>The rol found entities.</returns> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The <see cref="IEnumerable{RoleAdapter}"/> found entities.</returns> | ||||
|         /// <response code="200">The roles found.</response> | ||||
|         /// <response code="404">The roles not found error.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpGet] | ||||
|         [ProducesResponseType(typeof(IEnumerable<RoleAdapter>), StatusCodes.Status200OK)] | ||||
| @@ -41,20 +42,21 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|         } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Gets the role by identifier. | ||||
|         /// Gets the role by mongo identifier. | ||||
|         /// </summary> | ||||
|         /// <param name="id">The role identifier.</param> | ||||
|         /// <param name="_id">The role mongo identifier.</param> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The <see cref="RoleAdapter"/> found entity.</returns> | ||||
|         /// <response code="200">The role found.</response> | ||||
|         /// <response code="404">The role not found error.</response> | ||||
|         /// <response code="404">The role not found.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpGet] | ||||
|         [Route(Routes.Id)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
|         [Permission("RoleManagement.Read")] | ||||
|         public async Task<IActionResult> GetRoleByIdAsync([FromRoute] string id, CancellationToken cancellationToken) | ||||
|         public async Task<IActionResult> GetRoleByIdAsync([FromRoute] string _id, CancellationToken cancellationToken) | ||||
|         { | ||||
|             var result = await service.GetRoleById(id, cancellationToken).ConfigureAwait(false); | ||||
|             var result = await service.GetRoleById(_id, cancellationToken).ConfigureAwait(false); | ||||
|  | ||||
|             if (result == null) | ||||
|             { | ||||
| @@ -68,6 +70,7 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|         /// Creates a new role. | ||||
|         /// </summary> | ||||
|         /// <param name="newRole">The role to be added.</param> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The <see cref="RoleAdapter"/> created entity.</returns> | ||||
|         /// <response code="201">The role created.</response> | ||||
|         /// <response code="422">The role could not be created.</response> | ||||
| @@ -82,60 +85,58 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|         } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Updates a full role by identifier. | ||||
|         /// Updates a full role by mongo identifier. | ||||
|         /// </summary> | ||||
|         /// <param name="_id">The role mongo identifier.</param> | ||||
|         /// <param name="entity">The role to update.</param> | ||||
|         /// <param name="id">The role identifier.</param> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The <see cref="RoleAdapter"/> updated entity.</returns> | ||||
|         /// <response code="200">The role updated.</response> | ||||
|         /// <response code="404">The role not found.</response> | ||||
|         /// <response code="400">Bad request if role ID mismatches.</response> | ||||
|         /// <response code="422">The role could not be updated.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpPut] | ||||
|         [Route(Routes.Id)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
|         [Permission("RoleManagement.Write")] | ||||
|         public async Task<IActionResult> UpdateRoleAsync([FromRoute] string id, [FromBody] RoleAdapter entity, CancellationToken cancellationToken) | ||||
|         public async Task<IActionResult> UpdateRoleAsync([FromRoute] string _id, [FromBody] RoleAdapter entity, CancellationToken cancellationToken) | ||||
|         { | ||||
|             if (id != entity.Id?.ToString()) | ||||
|             if (_id != entity._Id) | ||||
|             { | ||||
|                 return BadRequest("Role ID mismatch"); | ||||
|             } | ||||
|  | ||||
|             var result = await service.UpdateRole(entity, cancellationToken).ConfigureAwait(false); | ||||
|  | ||||
|             return Ok(result); | ||||
|         } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Changes the status of the role. | ||||
|         /// </summary> | ||||
|         /// <param name="id">The role identifier.</param> | ||||
|         /// <param name="_id">The role mongo identifier.</param> | ||||
|         /// <param name="newStatus">The new status of the role.</param> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The <see cref="RoleAdapter"/> updated entity.</returns> | ||||
|         /// <response code="200">The role updates.</response> | ||||
|         /// <response code="404">The role not found.</response> | ||||
|         /// <response code="422">The role could not be deleted.</response> | ||||
|         /// <response code="200">The role status updated.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpPatch] | ||||
|         [Route(Routes.ChangeStatus)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
|         [Permission("RoleManagement.Write")] | ||||
|         public async Task<IActionResult> ChangeRoleStatus([FromRoute] string id, [FromRoute] StatusEnum newStatus, CancellationToken cancellationToken) | ||||
|         public async Task<IActionResult> ChangeRoleStatus([FromRoute] string _id, [FromRoute] StatusEnum newStatus, CancellationToken cancellationToken) | ||||
|         { | ||||
|             var result = await service.ChangeRoleStatus(id, newStatus, cancellationToken).ConfigureAwait(false); | ||||
|             var result = await service.ChangeRoleStatus(_id, newStatus, cancellationToken).ConfigureAwait(false); | ||||
|             return Ok(result); | ||||
|         } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Adds an application to the role's list of applications. | ||||
|         /// </summary> | ||||
|         /// <param name="roleId">The identifier of the role to which the application will be added.</param> | ||||
|         /// <param name="roleId">The mongo identifier of the role to which the application will be added.</param> | ||||
|         /// <param name="application">The application enum value to add.</param> | ||||
|         /// <returns>A <see cref="Task{RoleAdapter}"/> representing the asynchronous operation, with the updated role object.</returns> | ||||
|         /// <response code="200">The role updates.</response> | ||||
|         /// <response code="404">The role not found.</response> | ||||
|         /// <response code="422">The role could not be deleted.</response> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The updated <see cref="RoleAdapter"/> object.</returns> | ||||
|         /// <response code="200">The application was added to the role.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpPost(Routes.AddApplication)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
| @@ -149,12 +150,11 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|         /// <summary> | ||||
|         /// Removes an application from the role's list of applications. | ||||
|         /// </summary> | ||||
|         /// <param name="roleId">The identifier of the role from which the application will be removed.</param> | ||||
|         /// <param name="roleId">The mongo identifier of the role from which the application will be removed.</param> | ||||
|         /// <param name="application">The application enum value to remove.</param> | ||||
|         /// <returns>A <see cref="Task{RoleAdapter}"/> representing the asynchronous operation, with the updated role object.</returns> | ||||
|         /// <response code="200">The role updates.</response> | ||||
|         /// <response code="404">The role not found.</response> | ||||
|         /// <response code="422">The role could not be deleted.</response> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The updated <see cref="RoleAdapter"/> object.</returns> | ||||
|         /// <response code="200">The application was removed from the role.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpDelete(Routes.RemoveApplication)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
| @@ -164,5 +164,28 @@ namespace LSA.Core.Thalos.API.Controllers | ||||
|             var result = await service.RemoveApplicationFromRole(roleId, application, cancellationToken).ConfigureAwait(false); | ||||
|             return Ok(result); | ||||
|         } | ||||
|  | ||||
|         /// <summary> | ||||
|         /// Deletes a role by its mongo identifier. | ||||
|         /// </summary> | ||||
|         /// <param name="_id">The role mongo identifier.</param> | ||||
|         /// <param name="cancellationToken">A token to cancel the asynchronous operation.</param> | ||||
|         /// <returns>The deleted <see cref="RoleAdapter"/> entity.</returns> | ||||
|         /// <response code="200">The role was deleted successfully.</response> | ||||
|         /// <response code="404">The role was not found.</response> | ||||
|         /// <response code="500">The service internal error.</response> | ||||
|         [HttpDelete] | ||||
|         [Route(Routes.Id)] | ||||
|         [ProducesResponseType(typeof(RoleAdapter), StatusCodes.Status200OK)] | ||||
|         [Permission("RoleManagement.Write")] | ||||
|         public async Task<IActionResult> DeleteRoleAsync([FromRoute] string _id, CancellationToken cancellationToken) | ||||
|         { | ||||
|             var result = await service.DeleteRole(_id, cancellationToken).ConfigureAwait(false); | ||||
|  | ||||
|             if (result is null) | ||||
|                 return NotFound("Role not found."); | ||||
|  | ||||
|             return Ok(result); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user