From 5ced7f916d94e86e9a7ec164bee56f9a8e3a2a3a Mon Sep 17 00:00:00 2001 From: Ariel Costas Guerrero Date: Mon, 26 May 2025 10:48:43 +0200 Subject: Replace Azure SWA with custom server --- .../GetStopEstimates.cs | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/Costasdev.Busurbano.Backend/GetStopEstimates.cs (limited to 'src/Costasdev.Busurbano.Backend/GetStopEstimates.cs') diff --git a/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs b/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs new file mode 100644 index 0000000..7fe77e1 --- /dev/null +++ b/src/Costasdev.Busurbano.Backend/GetStopEstimates.cs @@ -0,0 +1,43 @@ +using Microsoft.AspNetCore.Mvc; +using Costasdev.VigoTransitApi; + +namespace Costasdev.Busurbano.Backend; + +[ApiController] +[Route("api")] +public class ApiController : ControllerBase +{ + private readonly VigoTransitApiClient _api; + + public ApiController(HttpClient http) + { + _api = new VigoTransitApiClient(http); + } + + [HttpGet("GetStopEstimates")] + public async Task Run() + { + var argumentAvailable = Request.Query.TryGetValue("id", out var requestedStopIdString); + if (!argumentAvailable) + { + return new BadRequestObjectResult("Please provide a stop id"); + } + + var argumentNumber = int.TryParse(requestedStopIdString, out var requestedStopId); + if (!argumentNumber) + { + return new BadRequestObjectResult("Please provide a valid stop id"); + } + + try + { + var estimates = await _api.GetStopEstimates(requestedStopId); + return new OkObjectResult(estimates); + } + catch (InvalidOperationException) + { + return new BadRequestObjectResult("Stop not found"); + } + } +} + -- cgit v1.3