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