55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using ldap_cesi.DTOs.Inputs;
|
|
using ldap_cesi.Services.Interfaces;
|
|
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace ldap_cesi.Controllers;
|
|
[ApiController]
|
|
[Route("api/utilisateur")]
|
|
public class UtilisateurController : ControllerBase
|
|
{
|
|
private IUtilisateurService _utilisateurService;
|
|
|
|
public UtilisateurController(IUtilisateurService utilisateurService)
|
|
{
|
|
_utilisateurService = utilisateurService;
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// Endpoint pour la connexion des utilisateurs.
|
|
/// </summary>
|
|
/// <param name="utilisateurInput">Les informations de connexion de l'utilisateur.</param>
|
|
/// <returns>Un token JWT si la connexion est réussie.</returns>
|
|
[HttpPost("login")]
|
|
public async Task<IActionResult> Login([FromBody] UtilisateurLoginDto utilisateurInput)
|
|
{
|
|
var response = await _utilisateurService.Login(utilisateurInput);
|
|
return StatusCode(response.StatusCode, response);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Endpoint pour récupérer tous les utilisateurs.
|
|
/// </summary>
|
|
/// <returns>Une liste d'utilisateurs.</returns>
|
|
[HttpGet]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> GetUtilisateurs()
|
|
{
|
|
var result = await _utilisateurService.GetAll();
|
|
return result.Success ? Ok(result.Data) : BadRequest(result.Message);
|
|
}
|
|
|
|
/// <summary>
|
|
/// Endpoint pour récupérer un utilisateur par son ID.
|
|
/// </summary>
|
|
/// <param name="id">L'ID de l'utilisateur.</param>
|
|
/// <returns>L'utilisateur correspondant à l'ID.</returns>
|
|
[HttpGet("{id}")]
|
|
[Authorize(Roles = "admin")]
|
|
public async Task<IActionResult> GetUtilisateurById(int id)
|
|
{
|
|
var result = await _utilisateurService.GetById(id);
|
|
return result.Success ? Ok(result.Data) : BadRequest(result.Message);
|
|
}
|
|
} |