Author: Adam Evyčędo <git@apiote.xyz>
fix getting default occupancy from gtfs-rt
traffic/realtime_gtfs.go | 11 ++++++++---
diff --git a/traffic/realtime_gtfs.go b/traffic/realtime_gtfs.go index 3ae1bc3efbe0c532e23f2607f2b2b3fca2636c7a..5824d38c00a3c5f744dfe6b62229b89805c9cf2e 100644 --- a/traffic/realtime_gtfs.go +++ b/traffic/realtime_gtfs.go @@ -62,8 +62,13 @@ return CONGESTION_UNKNOWN } } -func makeOccupancyStatus(s pb.VehiclePosition_OccupancyStatus) OccupancyStatus { - switch s { +// XXX default occupancy status in GTFS-realtime is VehiclePosition_EMPTY while VehiclePosition_NO_DATA exists +func makeOccupancyStatus(s *pb.VehiclePosition_OccupancyStatus) OccupancyStatus { + if s == nil { + return OCCUPANCY_UNKNOWN + } + + switch *s { case pb.VehiclePosition_EMPTY: return OCCUPANCY_EMPTY case pb.VehiclePosition_MANY_SEATS_AVAILABLE: @@ -119,7 +124,7 @@ vehicleUpdate := VehicleStatus{ Status: makeDepartureStatus(v.GetCurrentStatus()), CongestionLevel: makeCongestionLevel(v.GetCongestionLevel()), - OccupancyStatus: makeOccupancyStatus(v.GetOccupancyStatus()), + OccupancyStatus: makeOccupancyStatus(v.OccupancyStatus), VehicleID: v.GetVehicle().GetId(), Latitude: float64(v.GetPosition().GetLatitude()), Longitude: float64(v.GetPosition().GetLongitude()),