75 lines
1.7 KiB
C#
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);
|
|
}
|
|
}
|
|
} |