using Microsoft.AspNetCore.Mvc; using Server.Dto.Request; using Server.Dto.Response; using Asp.Versioning; using Server.IServices; namespace Server.Controller.v1; [ApiController] [ApiVersion("1.0")] [Route("api/v{version:apiVersion}/[controller]")] public class UsersController : ControllerBase { private readonly ILogger _logger; private IUsersService _dataServices; public UsersController(ILogger logger, IUsersService dataServices) { _logger = logger; _dataServices = dataServices; } [HttpGet] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] public IActionResult GetUsers([FromQuery] int pageIndex = 1, [FromQuery] int pageSize = 5, [FromQuery] bool ascending = true) { var users = _dataServices.GetUsers(pageIndex, pageSize, ascending); return users.Result.TotalCount == 0 ? NoContent() : Ok(users); } [HttpGet("{id}")] [ProducesResponseType(typeof(ResponseUserDto), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] public IActionResult GetAlumniById(string id) { var alumni = _dataServices.GetUserById(id); return alumni.Result == null ? NotFound() : Ok(alumni); } }