szczanieckiej.git

commit 5885334ef442e6051068bad2c38450a678fee7c5

Author: Adam <git@apiote.xyz>

ignore trips that are not found when showing vehicles on map

 traffic/access.go | 8 +++++---
 traffic/realtime.go | 4 +++-


diff --git a/traffic/access.go b/traffic/access.go
index 79ea4a37dcda7e0ae33f504fb41d286213dc9d3a..ca84b7f14e287649ea5a03f2e9767a4cff54ac42 100644
--- a/traffic/access.go
+++ b/traffic/access.go
@@ -853,14 +853,16 @@ }
 
 func GetTrips(ids []string, ctx Context, t *Traffic) (map[string]Trip, error) { // TODO optimise
 	trips := map[string]Trip{}
+	e := []error{}
 	for _, id := range ids {
 		trip, err := GetTrip(id, ctx, t)
 		if err != nil {
-			return trips, err
+			e = append(e, err)
+		} else {
+			trips[trip.Id] = trip
 		}
-		trips[trip.Id] = trip
 	}
-	return trips, nil
+	return trips, errors.Join(e...)
 }
 
 func GetTripsByOffset(offsets []uint, context Context, filter func(Trip) bool) (map[uint]Trip, error) {




diff --git a/traffic/realtime.go b/traffic/realtime.go
index e555c972e2eb160c79165cc5cc85662ca66fc9f1..b32b909cb97a7a6b3d38ac85f6c55913a39596ac 100644
--- a/traffic/realtime.go
+++ b/traffic/realtime.go
@@ -281,10 +281,12 @@ 		}
 		trips, err := GetTrips(ids, ctx, t)
 		if err != nil {
 			log.Printf("while getting trips: %v", err)
-			return []VehicleStatus{}
 		}
 		statusesWithLine := make([]VehicleStatus, len(statuses))
 		for i, status := range statuses {
+			if _, ok := trips[status.TripID]; !ok {
+				continue
+			}
 			status.LineName = trips[status.TripID].LineName
 			status.Headsign = trips[status.TripID].Headsign
 			statusesWithLine[i] = status