diff options
| author | Ariel Costas Guerrero <ariel@costas.dev> | 2026-03-13 16:55:40 +0100 |
|---|---|---|
| committer | Ariel Costas Guerrero <ariel@costas.dev> | 2026-03-13 16:55:40 +0100 |
| commit | 5c670f1b4a237b7a5197dfcf94de92095da95463 (patch) | |
| tree | 3eed5244c50905dceaa86228349a4aac7cd7de03 | |
| parent | ee69c62adc5943a1dbd154df5142c0e726bdd317 (diff) | |
Fix circular routes not having schedule data because of a dumb IF condition
| -rw-r--r-- | src/Enmarcha.Backend/Controllers/ArrivalsController.cs | 5 | ||||
| -rw-r--r-- | src/Enmarcha.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs | 18 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs index 7ca3ab9..03286c4 100644 --- a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs +++ b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs @@ -167,7 +167,10 @@ public partial class ArrivalsController : ControllerBase foreach (var item in stop.Arrivals) { if (item.PickupTypeParsed.Equals(ArrivalsAtStopResponse.PickupType.None)) continue; - if (item.Trip.ArrivalStoptime.Stop.GtfsId == id) continue; + if ( + item.Trip.ArrivalStoptime.Stop.GtfsId == id && + item.Trip.DepartureStoptime.Stop.GtfsId != id + ) continue; var serviceDayLocal = TimeZoneInfo.ConvertTime(DateTimeOffset.FromUnixTimeSeconds(item.ServiceDay), tz); var departureTime = serviceDayLocal.Date.AddSeconds(item.ScheduledDepartureSeconds); diff --git a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs index 6e89f08..49dbd43 100644 --- a/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs +++ b/src/Enmarcha.Sources.OpenTripPlannerGql/Queries/ArrivalsAtStop.cs @@ -46,6 +46,9 @@ public class ArrivalsAtStopContent : IGraphRequest<ArrivalsAtStopContent.Args> }} departureStoptime {{ scheduledDeparture + stop {{ + gtfsId + }} }} arrivalStoptime {{ stop {{ @@ -120,10 +123,10 @@ public class ArrivalsAtStopResponse : AbstractGraphResponse [JsonPropertyName("tripHeadsign")] public string? TripHeadsign { get; set; } [JsonPropertyName("departureStoptime")] - public required DepartureStoptime DepartureStoptime { get; set; } + public required TerminusStoptime DepartureStoptime { get; set; } [JsonPropertyName("arrivalStoptime")] - public required ArrivalStoptime ArrivalStoptime { get; set; } + public required TerminusStoptime ArrivalStoptime { get; set; } [JsonPropertyName("route")] public required RouteDetails Route { get; set; } @@ -158,18 +161,15 @@ public class ArrivalsAtStopResponse : AbstractGraphResponse [JsonPropertyName("lon")] public double Lon { get; set; } } - public class DepartureStoptime + public class TerminusStoptime { [JsonPropertyName("scheduledDeparture")] - public int ScheduledDeparture { get; set; } - } + public int? ScheduledDeparture { get; set; } - public class ArrivalStoptime - { - [JsonPropertyName("stop")] public ArrivalStoptimeStop Stop { get; set; } + [JsonPropertyName("stop")] public TerminusStoptimeStop Stop { get; set; } } - public class ArrivalStoptimeStop + public class TerminusStoptimeStop { [JsonPropertyName("gtfsId")] public required string GtfsId { get; set; } } |
