sanAntonioSeniorGolf/API/Controllers/EventController.cs

59 lines
1.4 KiB
C#
Raw Normal View History

2024-05-20 15:11:13 -05:00
using API.Authentication.Interfaces;
using API.DTO.Base;
using API.DTO.Base.Update;
using API.Services;
using DAL.Models;
using DAL.Models.Audits;
using Microsoft.AspNetCore.Mvc;
2024-08-30 00:25:46 -05:00
using MUser = DAL.Models.User;
2024-05-20 15:11:13 -05:00
namespace API.Controllers
{
[ApiController]
[Route("api/v1/[controller]")]
2024-07-12 23:12:04 -05:00
public class EventController : CRUDBase<EventController, EventDTO, EventUpdateDTO, Event, AuditEvent, IEventAuthentication, EventService>
2024-05-20 15:11:13 -05:00
{
public EventController(ILogger<EventController> logger, UserService userService, EventService service) : base(logger, userService, service)
{
}
2024-08-30 00:25:46 -05:00
2024-08-31 18:38:43 -05:00
//todo slow
2024-08-30 00:25:46 -05:00
[HttpGet("period")]
public virtual ActionResult<List<EventDTO>> getPeriod(DateTime start, DateTime end)
{
MUser? user = getUser(User);
if (user == null)
return Unauthorized();
IEnumerable<Event>? result = Service.get(user, x=> x.when >= start && x.when <= end);
if (result == null)
return Forbid();
List<EventDTO> dtos = [];
2024-08-31 18:38:43 -05:00
Parallel.ForEach(result.ToList(), item =>
2024-08-30 00:25:46 -05:00
{
EventDTO dto = new EventDTO();
dto.adaptFromModel(item);
dtos.Add(dto);
});
return Ok(dtos);
}
2024-08-31 18:38:43 -05:00
[HttpGet("{eventId}/isSignedUp")]
public ActionResult<bool> isSignedUp(ulong eventId)
{
MUser? user = getUser(User);
if (user == null)
return Unauthorized();
bool? isSignedUp = Service.isSignedUp(user, eventId);
if (isSignedUp == null)
return Forbid();
return isSignedUp;
}
2024-05-20 15:11:13 -05:00
}
}