ticket-system/source/ticketAPI/api/Controllers/SeasonController.cs
2024-12-05 16:47:23 -05:00

75 lines
1.7 KiB
C#

using api.Interfaces;
using Microsoft.AspNetCore.Mvc;
using models.Core;
using models.Request;
namespace api.Controllers;
/// <summary>
/// Endpoints for Season Management
/// </summary>
/// <param name="seasonManager">Event Manager Service</param>
[ApiController]
[Route("[controller]")]
public class SeasonController(ISeasonManager seasonManager) : ControllerBase
{
/// <summary>
/// Adds a season to the database
/// </summary>
/// <param name="request">Season to add</param>
/// <returns></returns>
[HttpPost]
public IActionResult Post([FromBody] AddSeason request)
{
//TODO: Protect Endpoint
try
{
seasonManager.AddSeason(request);
return Ok();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
/// <summary>
/// Gets all seasons
/// </summary>
/// <returns>List of Seasons</returns>
[HttpGet]
public ActionResult<List<Season>> Get()
{
//TODO: Protect Endpoint
try
{
return Ok(seasonManager.GetSeasons());
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
/// <summary>
/// Adds an event to a season
/// </summary>
/// <param name="seasonId">Season Id</param>
/// <param name="eventId">Event Id</param>
/// <returns></returns>
[HttpPut]
public IActionResult Put(Guid eventId, Guid seasonId)
{
//TODO: Protect Endpoint
try
{
seasonManager.AddEventToSeason(eventId, seasonId);
return Ok();
}
catch (Exception e)
{
return BadRequest(e.Message);
}
}
}