From da057b8bc8f9661e17a42d28a89dbe7ddc0ba518 Mon Sep 17 00:00:00 2001 From: Mischa Heeb Date: Fri, 31 Oct 2025 17:34:25 +0100 Subject: [PATCH 1/4] feat(api): Added Attraction GET requests --- .../Controllers/AttractionController.cs | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 apps/APTrackerAPI/Controllers/AttractionController.cs diff --git a/apps/APTrackerAPI/Controllers/AttractionController.cs b/apps/APTrackerAPI/Controllers/AttractionController.cs new file mode 100644 index 0000000..a441d6e --- /dev/null +++ b/apps/APTrackerAPI/Controllers/AttractionController.cs @@ -0,0 +1,42 @@ +using APTrackerAPI.Data; +using APTrackerAPI.Models; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace APTrackerAPI.Controllers +{ + [ApiController] + [Route("[controller]")] + public class AttractionController : ControllerBase + { + private readonly ILogger _logger; + private readonly APTrackerDbContext _dbContext; + + public AttractionController(ILogger logger, APTrackerDbContext dbContext) + { + _logger = logger; + _dbContext = dbContext; + } + + [HttpGet("GetAttraction")] + public async Task>> GetAttraction() + { + return await _dbContext.Attractions.ToListAsync(); + } + + [HttpGet("GetAttraction/{id}")] + public async Task> GetAttraction(int id) + { + var attraction = await _dbContext.Attractions.FindAsync(id); + + if (attraction == null) + { + return NotFound(); + } + + return attraction; + } + + } +} + From 80916d982b2ce681882eb1c6641695558660befa Mon Sep 17 00:00:00 2001 From: Mischa Heeb Date: Fri, 14 Nov 2025 22:17:06 +0100 Subject: [PATCH 2/4] chore(api): removed unused whitespace in AttractionController.cs --- apps/APTrackerAPI/Controllers/AttractionController.cs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/APTrackerAPI/Controllers/AttractionController.cs b/apps/APTrackerAPI/Controllers/AttractionController.cs index a441d6e..a1b82b9 100644 --- a/apps/APTrackerAPI/Controllers/AttractionController.cs +++ b/apps/APTrackerAPI/Controllers/AttractionController.cs @@ -11,19 +11,19 @@ public class AttractionController : ControllerBase { private readonly ILogger _logger; private readonly APTrackerDbContext _dbContext; - + public AttractionController(ILogger logger, APTrackerDbContext dbContext) { _logger = logger; _dbContext = dbContext; } - + [HttpGet("GetAttraction")] public async Task>> GetAttraction() { return await _dbContext.Attractions.ToListAsync(); } - + [HttpGet("GetAttraction/{id}")] public async Task> GetAttraction(int id) { @@ -36,7 +36,6 @@ public async Task> GetAttraction(int id) return attraction; } - } } From d37cc3d901992fdae816e9bbf4165e4c9b615f74 Mon Sep 17 00:00:00 2001 From: Mischa Heeb Date: Fri, 14 Nov 2025 23:01:16 +0100 Subject: [PATCH 3/4] chore(api): Added documentation to Methods and Class inside of AttractionController.cs --- .../Controllers/AttractionController.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/APTrackerAPI/Controllers/AttractionController.cs b/apps/APTrackerAPI/Controllers/AttractionController.cs index a1b82b9..df1915f 100644 --- a/apps/APTrackerAPI/Controllers/AttractionController.cs +++ b/apps/APTrackerAPI/Controllers/AttractionController.cs @@ -5,6 +5,9 @@ namespace APTrackerAPI.Controllers { + /// + /// Controller for managing attractions. + /// [ApiController] [Route("[controller]")] public class AttractionController : ControllerBase @@ -18,12 +21,24 @@ public AttractionController(ILogger logger, APTrackerDbCon _dbContext = dbContext; } + /// + /// Retrieves all attractions. + /// + /// A list of all attractions. + /// Returns the list of attractions [HttpGet("GetAttraction")] public async Task>> GetAttraction() { return await _dbContext.Attractions.ToListAsync(); } + /// + /// Retrieves a specific attraction by a given ID. + /// + /// The ID of the attraction to retrieve. + /// The attraction specified by the ID. + /// Returns the requested attraction + /// If the attraction was not found [HttpGet("GetAttraction/{id}")] public async Task> GetAttraction(int id) { From ed24d6627e6c07ff20991c3da138ffe47270ffea Mon Sep 17 00:00:00 2001 From: Mischa Heeb Date: Fri, 14 Nov 2025 23:33:11 +0100 Subject: [PATCH 4/4] chore(api): added log warning on GET attraction not found --- apps/APTrackerAPI/Controllers/AttractionController.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/APTrackerAPI/Controllers/AttractionController.cs b/apps/APTrackerAPI/Controllers/AttractionController.cs index df1915f..a457214 100644 --- a/apps/APTrackerAPI/Controllers/AttractionController.cs +++ b/apps/APTrackerAPI/Controllers/AttractionController.cs @@ -46,6 +46,7 @@ public async Task> GetAttraction(int id) if (attraction == null) { + _logger.LogWarning("Attraction with id {Id} does not exist", id); return NotFound(); }