using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using SeaHaven.Services.Exceptions; using SeaHaven.Services.Interfaces; namespace Api.SeaHavenIndustries.Controllers { [Authorize] [ApiController] [Route("api/notifications")] public class NotificationsController : ControllerBase { private readonly INotificationFeedService _feedService; public NotificationsController(INotificationFeedService feedService) { _feedService = feedService; } [HttpGet] public async Task GetFeed(CancellationToken cancellationToken) { try { return Ok(await _feedService.GetFeedAsync(User, cancellationToken)); } catch (WorkOrderBoardValidationException ex) when (ex.Code == "Forbidden") { return StatusCode(StatusCodes.Status403Forbidden, new { code = ex.Code, message = ex.Message }); } } } }