You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
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<UsersController> _logger;
|
|
private IUsersService _dataServices;
|
|
|
|
public UsersController(ILogger<UsersController> logger, IUsersService dataServices)
|
|
{
|
|
_logger = logger;
|
|
_dataServices = dataServices;
|
|
}
|
|
|
|
[HttpGet]
|
|
[ProducesResponseType(typeof(IEnumerable<ResponseUserDto>), StatusCodes.Status200OK)]
|
|
[ProducesResponseType(StatusCodes.Status204NoContent)]
|
|
[RequireHttps]
|
|
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)]
|
|
|
|
[RequireHttps]
|
|
public IActionResult GetAlumniById(string id)
|
|
{
|
|
var alumni = _dataServices.GetUserById(id);
|
|
return alumni.Result == null ? NotFound() : Ok(alumni);
|
|
}
|
|
} |