Files
mlb-gameday-dotnet-react/teams/Controllers/TeamsController.cs
2023-06-01 08:52:05 -05:00

49 lines
1.1 KiB
C#

using MediatR;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
using Teams.Entities;
using Teams.Queries;
namespace Teams.Controllers;
[ApiController]
[Route("api/teams")]
public class TeamsController : ControllerBase
{
private readonly ISender _sender;
public TeamsController(ISender sender) => _sender = sender;
[HttpGet]
public async Task<ActionResult> GetTeams([FromQuery] int pageNumber, [FromQuery] int pageSize)
{
var teams = await _sender.Send(new GetTeamsQuery
{
PageNumber = pageNumber,
PageSize = pageSize
});
Response.Headers.Add("X-Pagination", JsonConvert.SerializeObject(new
{
teams.CurrentPage,
teams.PageSize,
teams.TotalCount,
teams.TotalPages
}));
return Ok(teams);
}
[HttpGet("{id}")]
public async Task<ActionResult> GetTeamById(int id)
{
var team = await _sender.Send(new GetTeamByIdQuery
{
TeamId = id
});
return Ok(team);
}
}