szczanieckiej.git

commit 36ebf975030398bd50445ea546a6cc5004c838ad

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()),