aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Backend')
-rw-r--r--src/Enmarcha.Backend/Controllers/TransitController.cs15
-rw-r--r--src/Enmarcha.Backend/Services/OtpService.cs4
-rw-r--r--src/Enmarcha.Backend/Types/Transit/RouteDtos.cs2
3 files changed, 19 insertions, 2 deletions
diff --git a/src/Enmarcha.Backend/Controllers/TransitController.cs b/src/Enmarcha.Backend/Controllers/TransitController.cs
index 7876dbe..9b13972 100644
--- a/src/Enmarcha.Backend/Controllers/TransitController.cs
+++ b/src/Enmarcha.Backend/Controllers/TransitController.cs
@@ -124,8 +124,21 @@ public class TransitController : ControllerBase
var query = RouteDetailsContent.Query(new RouteDetailsContent.Args(id, serviceDate));
var response = await SendOtpQueryAsync<RouteDetailsResponse>(query);
- if (response?.Data?.Route == null)
+ if (response == null)
{
+ return StatusCode(500, "Failed to connect to OTP.");
+ }
+
+ if (!response.IsSuccess)
+ {
+ var messages = string.Join("; ", response.Errors?.Select(e => e.Message) ?? []);
+ _logger.LogError("OTP returned errors: {Errors}", messages);
+ return StatusCode(500, $"OTP Error: {messages}");
+ }
+
+ if (response.Data?.Route == null)
+ {
+ _logger.LogWarning("Route details not found for {Id} on {ServiceDate}", id, serviceDate);
return NotFound();
}
diff --git a/src/Enmarcha.Backend/Services/OtpService.cs b/src/Enmarcha.Backend/Services/OtpService.cs
index e72877e..0de06bf 100644
--- a/src/Enmarcha.Backend/Services/OtpService.cs
+++ b/src/Enmarcha.Backend/Services/OtpService.cs
@@ -108,7 +108,9 @@ public class OtpService
.Select(t => t.Stoptimes.ElementAtOrDefault(i)?.ScheduledDeparture ?? -1)
.Where(d => d != -1)
.OrderBy(d => d)
- .ToList()
+ .ToList(),
+ PickupType = pattern.TripsForDate.FirstOrDefault()?.Stoptimes.ElementAtOrDefault(i)?.PickupType,
+ DropOffType = pattern.TripsForDate.FirstOrDefault()?.Stoptimes.ElementAtOrDefault(i)?.DropoffType
}).ToList()
};
}
diff --git a/src/Enmarcha.Backend/Types/Transit/RouteDtos.cs b/src/Enmarcha.Backend/Types/Transit/RouteDtos.cs
index 3904555..8427ec7 100644
--- a/src/Enmarcha.Backend/Types/Transit/RouteDtos.cs
+++ b/src/Enmarcha.Backend/Types/Transit/RouteDtos.cs
@@ -43,4 +43,6 @@ public class PatternStopDto
public double Lat { get; set; }
public double Lon { get; set; }
public List<int> ScheduledDepartures { get; set; } = [];
+ public string? PickupType { get; set; }
+ public string? DropOffType { get; set; }
}