using Microsoft.AspNetCore.Mvc; 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}/alumni-restricted")] public class AlumniRestrictedController : ControllerBase { private readonly ILogger _logger; private IAlumnisService _dataServices; public AlumniRestrictedController(ILogger logger, IAlumnisService dataServices) { _logger = logger; _dataServices = dataServices; } [HttpGet] [ProducesResponseType(typeof(IEnumerable), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status204NoContent)] [RequireHttps] public async Task GetAlumniRestricted([FromQuery] string? lastname, [FromQuery] int page = 1, [FromQuery] int size = 5, [FromQuery] AlumniOrderCriteria orderCriteria = AlumniOrderCriteria.None, [FromQuery] bool ascending = true) { var alumni = await _dataServices.GetAlumnisRestricted(lastname, page, size, orderCriteria, ascending); if( alumni.Count == 0) return NoContent(); return Ok(alumni.Alumnis); } [HttpGet("{id}")] [ProducesResponseType(typeof(ResponseAlumniDto), StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status404NotFound)] [RequireHttps] public IActionResult GetAlumniRestrictedById(string id) { var alumni = _dataServices.GetAlumniRestrictedById(id); return alumni.Result == null ? NotFound() : Ok(alumni.Result); } }