using Microsoft.AspNetCore.Mvc; using Server.Dto.Request; using Server.Dto.Response; using Asp.Versioning; using Server.IServices; using Shared.Criteria; namespace Server.Controller.v1; [ApiController] [ApiVersion("1.0")] [Route("api/v{version:apiVersion}/[controller]")] public class AlumnisController : ControllerBase { private readonly ILogger _logger; private IAlumnisService _dataServices; public AlumnisController(ILogger logger, IAlumnisService dataServices) { _logger = logger; _dataServices = dataServices; } [HttpGet] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] [RequireHttps] public IActionResult GetAlumni([FromQuery] string? lastname, [FromQuery] int page = 1, [FromQuery] int size = 5, [FromQuery] AlumniOrderCriteria orderCriteria = AlumniOrderCriteria.None, [FromQuery] bool ascending = true) { var alumni = _dataServices.GetAlumnis(lastname, page, size, orderCriteria, ascending); return alumni.Result.Count == 0 ? NoContent() : Ok(alumni.Result.Alumnis); } [HttpPost()] [ProducesResponseType(typeof(ResponseAlumniDto), StatusCodes.Status201Created)] [ProducesResponseType(StatusCodes.Status400BadRequest)] [RequireHttps] public IActionResult CreateAlumni([FromBody] RequestAlumniDto alumniDto) { var alumni = _dataServices.CreateAlumni(alumniDto); return alumni.Result == null ? BadRequest() : CreatedAtAction(nameof(CreateAlumni), alumni); } [HttpGet("{id}")] [ProducesResponseType(typeof(ResponseAlumniDto), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [RequireHttps] public IActionResult GetAlumniById(string id) { var alumni = _dataServices.GetAlumniById(id); return alumni.Result == null ? NotFound() : Ok(alumni); } }