aboutsummaryrefslogtreecommitdiff
path: root/src/Enmarcha.Backend/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'src/Enmarcha.Backend/Controllers')
-rw-r--r--src/Enmarcha.Backend/Controllers/ArrivalsController.cs28
-rw-r--r--src/Enmarcha.Backend/Controllers/TileController.cs13
2 files changed, 25 insertions, 16 deletions
diff --git a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
index 16bc047..7feeee0 100644
--- a/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
+++ b/src/Enmarcha.Backend/Controllers/ArrivalsController.cs
@@ -140,6 +140,15 @@ public partial class ArrivalsController : ControllerBase
return Ok(new StopEstimatesResponse { Arrivals = estimates });
}
+ private static VehicleOperation GetVehicleOperation(ArrivalsAtStopResponse.PickupType pickup, ArrivalsAtStopResponse.PickupType dropoff)
+ {
+ 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;
+ if (dropoff != ArrivalsAtStopResponse.PickupType.None) return VehicleOperation.DropoffOnly;
+ return VehicleOperation.PickupDropoff;
+ }
+
private async Task<(ArrivalsAtStopResponse.StopItem Stop, ArrivalsContext Context)?> FetchAndProcessArrivalsAsync(
string id, bool reduced, bool nano)
{
@@ -168,11 +177,21 @@ public partial class ArrivalsController : ControllerBase
List<Arrival> arrivals = [];
foreach (var item in stop.Arrivals)
{
- if (item.PickupTypeParsed.Equals(ArrivalsAtStopResponse.PickupType.None)) continue;
+ //if (item.PickupTypeParsed.Equals(ArrivalsAtStopResponse.PickupType.None)) continue;
+ //if (
+ // item.Trip.ArrivalStoptime.Stop.GtfsId == id &&
+ // item.Trip.DepartureStoptime.Stop.GtfsId != id
+ //) continue;
+
+ // Delete loop routes that aren't starting here
if (
item.Trip.ArrivalStoptime.Stop.GtfsId == id &&
- item.Trip.DepartureStoptime.Stop.GtfsId != id
- ) continue;
+ item.Trip.DepartureStoptime.Stop.GtfsId == id &&
+ item.StopPosition != 1
+ )
+ {
+ continue;
+ }
var serviceDayLocal = TimeZoneInfo.ConvertTime(DateTimeOffset.FromUnixTimeSeconds(item.ServiceDay), tz);
var departureTime = serviceDayLocal.Date.AddSeconds(item.ScheduledDepartureSeconds);
@@ -195,7 +214,8 @@ public partial class ArrivalsController : ControllerBase
Precision = departureTime < nowLocal.AddMinutes(-1) ? ArrivalPrecision.Past : ArrivalPrecision.Scheduled
},
Operator = feedId == "xunta" ? item.Trip.Route.Agency?.Name : null,
- RawOtpTrip = item
+ RawOtpTrip = item,
+ Operation = GetVehicleOperation(item.PickupTypeParsed, item.DropoffTypeParsed)
});
}
diff --git a/src/Enmarcha.Backend/Controllers/TileController.cs b/src/Enmarcha.Backend/Controllers/TileController.cs
index 5ef8dd6..b419dee 100644
--- a/src/Enmarcha.Backend/Controllers/TileController.cs
+++ b/src/Enmarcha.Backend/Controllers/TileController.cs
@@ -127,7 +127,7 @@ public class TileController : ControllerBase
{ "code", $"{idParts[0]}:{codeWithinFeed}" },
{ "name", FeedService.NormalizeStopName(feedId, stop.Name) },
{ "icon", GetIconNameForFeed(feedId) },
- { "transitKind", GetTransitKind(feedId) }
+ { "transitKind", TransitKindClassifier.StringByFeed(feedId) }
}
};
@@ -172,17 +172,6 @@ public class TileController : ControllerBase
};
}
- private string GetTransitKind(string feedId)
- {
- return feedId switch
- {
- "vitrasa" or "tussa" or "tranvias" or "shuttle" or "ourense" => "bus",
- "xunta" => "coach",
- "renfe" or "feve" => "train",
- _ => "unknown"
- };
- }
-
private List<StopTileResponse.Route> GetDistinctRoutes(string feedId, List<StopTileResponse.Route> routes)
{
List<StopTileResponse.Route> distinctRoutes = [];