using DTO; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Shared; using System.Net; namespace WfApi.Controllers { [ApiController] [Route("api/v1/users")] //Version API public class UsersController : ControllerBase { private readonly IUserService _user; private readonly ILogger _logger; public UsersController(IUserService userService, ILogger logger) { _user = userService; _logger = logger; } //===================================== ROUTE GET ===================================== [HttpGet("id/{id}")] // Indiquer que l'id est dans l'URL public async Task Get(int id) { try { var result = _user.GetUserById(id); if(result.IsCompletedSuccessfully) { return await Task.FromResult(Ok(result)); } else { return NoContent(); } } catch (Exception) { return StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Internal Server Error" }); } } [HttpGet("all")] // Indiquer que l'id est dans l'URL public async Task GetAllUsers(int index =0, int count = 5) { try { var result = _user.GetSomeUser(index, count); if (result.IsCompletedSuccessfully) { return await Task.FromResult(Ok(result)); } else { return NoContent(); } } catch (Exception) { return StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Internal Server Error" }); } } [HttpGet("hashpassword/{username}")] // Indiquer que l'id est dans l'URL public async Task GetHashPassword(string username) { try { var result = _user.GetHashPassword(username); if (result.IsCompletedSuccessfully) { return await Task.FromResult(Ok(result)); } else { return NoContent(); } } catch (Exception) { return StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Internal Server Error" }); } } [HttpGet("username/{username}")] // Indiquer que l'id est dans l'URL public async Task GetUserByUsername(string username) { try { var result = _user.GetUserByUsername(username); if (result.IsCompletedSuccessfully) { return await Task.FromResult(Ok(result)); } else { return NoContent(); } } catch (Exception) { return StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Internal Server Error" }); } } [HttpGet("email/{email}")] // Indiquer que l'id est dans l'URL public async Task GetUserByEmail(string email) { try { var result = _user.GetUserByEmail(email); if (result.IsCompletedSuccessfully) { return await Task.FromResult(Ok(result)); } else { return NoContent(); } } catch (Exception) { return StatusCode((int)HttpStatusCode.InternalServerError, new { message = "Internal Server Error" }); } } } }