89 lines
3.0 KiB
C#
89 lines
3.0 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using ldap_cesi.DTOs.Inputs.Role;
|
|
using ldap_cesi.Services.Interfaces;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
|
|
namespace ldap_cesi.Controllers
|
|
{
|
|
[Route("api/[controller]")]
|
|
[ApiController]
|
|
public class RoleController : ControllerBase
|
|
{
|
|
private readonly IRoleService _roleService;
|
|
|
|
public RoleController(IRoleService roleService)
|
|
{
|
|
_roleService = roleService;
|
|
}
|
|
|
|
// GET: api/Role
|
|
/// <summary>
|
|
/// Endpoint qui retourne tous les rôles
|
|
/// </summary>
|
|
/// <returns>Un tableau de rôle</returns>
|
|
[HttpGet]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> GetAllRoles([FromQuery] int pageNumber = 1, [FromQuery] int pageSize = 10)
|
|
{
|
|
var result = await _roleService.GetAll(pageNumber, pageSize);
|
|
return result.Success ? Ok(result) : BadRequest(result);
|
|
}
|
|
|
|
// GET: api/Role/{id}
|
|
/// <summary>
|
|
/// Endpoint qui retourne le role
|
|
/// </summary>
|
|
/// <param name="id">L'id du rôle.</param>
|
|
/// <returns>Le role update</returns>
|
|
[HttpGet("{id}")]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> GetRoleById(int id)
|
|
{
|
|
var result = await _roleService.GetById(id);
|
|
return result.Success ? Ok(result) : BadRequest(result);
|
|
}
|
|
|
|
// POST: api/Role
|
|
/// <summary>
|
|
/// Endpoint créer le Role
|
|
/// </summary>
|
|
/// <param name="CreateRoleInput">Le nom du rôle.</param>
|
|
/// <returns>Response.</returns>
|
|
[HttpPost]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> CreateRole([FromBody] RoleCreateDto roleDto)
|
|
{
|
|
var result = await _roleService.Create(roleDto);
|
|
return result.Success ? Ok(result) : BadRequest(result);
|
|
}
|
|
|
|
// PUT: api/Role
|
|
/// <summary>
|
|
/// Endpoint qui met à jour un role.
|
|
/// </summary>
|
|
/// <param name="roleUpdateDto">Les informations du role à mettre à jour. Id, nom</param>
|
|
/// <returns>Le role mis à jour.</returns>
|
|
[HttpPut]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> UpdateRole([FromBody] RoleUpdateDto roleDto)
|
|
{
|
|
var result = await _roleService.Update(roleDto);
|
|
return result.Success ? Ok(result) : BadRequest(result);
|
|
}
|
|
|
|
// DELETE: api/Role/{id}
|
|
/// <summary>
|
|
/// Endpoint qui supprime un rôle.
|
|
/// </summary>
|
|
/// <param name="id">L'ID du rôle à supprimer.</param>
|
|
/// <returns>Un message de confirmation de suppression.</returns>
|
|
[HttpDelete("{id}")]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> DeleteRole(int id)
|
|
{
|
|
var result = await _roleService.Delete(id);
|
|
return result.Success ? Ok(result) : BadRequest(result);
|
|
}
|
|
}
|
|
}
|