diff options
Diffstat (limited to 'src/Enmarcha.Backend')
| -rw-r--r-- | src/Enmarcha.Backend/Controllers/ArrivalsController.cs | 19 | ||||
| -rw-r--r-- | src/Enmarcha.Backend/Types/Arrivals/Arrival.cs | 6 |
2 files changed, 22 insertions, 3 deletions
diff --git a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs index 7feeee0..5608723 100644 --- a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs +++ b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs @@ -140,8 +140,23 @@ public partial class ArrivalsController : ControllerBase return Ok(new StopEstimatesResponse { Arrivals = estimates }); } - private static VehicleOperation GetVehicleOperation(ArrivalsAtStopResponse.PickupType pickup, ArrivalsAtStopResponse.PickupType dropoff) + private static VehicleOperation GetVehicleOperation( + ArrivalsAtStopResponse.Arrival item + ) { + var pickup = item.PickupTypeParsed; + var dropoff = item.DropoffTypeParsed; + + if (item.StopPosition == 0) + { + return VehicleOperation.Departure; + } + + if (item.StopPosition == item.Trip.Stoptimes.Count - 1) + { + return VehicleOperation.Arrival; + } + if (pickup == ArrivalsAtStopResponse.PickupType.None && dropoff == ArrivalsAtStopResponse.PickupType.None) return VehicleOperation.PickupDropoff; if (pickup != ArrivalsAtStopResponse.PickupType.None && dropoff != ArrivalsAtStopResponse.PickupType.None) return VehicleOperation.PickupDropoff; if (pickup != ArrivalsAtStopResponse.PickupType.None) return VehicleOperation.PickupOnly; @@ -215,7 +230,7 @@ public partial class ArrivalsController : ControllerBase }, Operator = feedId == "xunta" ? item.Trip.Route.Agency?.Name : null, RawOtpTrip = item, - Operation = GetVehicleOperation(item.PickupTypeParsed, item.DropoffTypeParsed) + Operation = GetVehicleOperation(item) }); } diff --git a/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs b/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs index 81811c2..0e74a44 100644 --- a/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs +++ b/src/Enmarcha.Backend/Types/Arrivals/Arrival.cs @@ -46,7 +46,11 @@ public enum VehicleOperation [JsonStringEnumMemberName("pickup_only")] PickupOnly = 1, [JsonStringEnumMemberName("dropoff_only")] - DropoffOnly = 2 + DropoffOnly = 2, + [JsonStringEnumMemberName("departure")] + Departure = 3, + [JsonStringEnumMemberName("arrival")] + Arrival = 4 } public class RouteInfo |
