ldap-cesi/ldap-cesi/Controllers/UtilisateurController.cs
BuzzLeclair 1fb1f49f9d - Ajout de tous les crud
//TODO : revoir le retour des fonctions getSSalarieByService/site
2025-03-03 00:56:59 +01:00

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);
}
}