diff --git a/src/ext/java/org/opentripplanner/ext/legacygraphqlapi/datafetchers/LegacyGraphQLStoptimeImpl.java b/src/ext/java/org/opentripplanner/ext/legacygraphqlapi/datafetchers/LegacyGraphQLStoptimeImpl.java index 779f10dad92..1632516477c 100644 --- a/src/ext/java/org/opentripplanner/ext/legacygraphqlapi/datafetchers/LegacyGraphQLStoptimeImpl.java +++ b/src/ext/java/org/opentripplanner/ext/legacygraphqlapi/datafetchers/LegacyGraphQLStoptimeImpl.java @@ -4,6 +4,7 @@ import graphql.schema.DataFetchingEnvironment; import org.opentripplanner.ext.legacygraphqlapi.LegacyGraphQLRequestContext; import org.opentripplanner.ext.legacygraphqlapi.generated.LegacyGraphQLDataFetchers; +import org.opentripplanner.model.StopTime; import org.opentripplanner.model.Trip; import org.opentripplanner.model.TripTimeOnDate; import org.opentripplanner.routing.RoutingService; @@ -17,27 +18,27 @@ public DataFetcher stop() { @Override public DataFetcher scheduledArrival() { - return environment -> getSource(environment).getScheduledArrival(); + return environment -> missingValueToNull(getSource(environment).getScheduledArrival()); } @Override public DataFetcher realtimeArrival() { - return environment -> getSource(environment).getRealtimeArrival(); + return environment -> missingValueToNull(getSource(environment).getRealtimeArrival()); } @Override public DataFetcher arrivalDelay() { - return environment -> getSource(environment).getArrivalDelay(); + return environment -> missingValueToNull(getSource(environment).getArrivalDelay()); } @Override public DataFetcher scheduledDeparture() { - return environment -> getSource(environment).getScheduledDeparture(); + return environment -> missingValueToNull(getSource(environment).getScheduledDeparture()); } @Override public DataFetcher realtimeDeparture() { - return environment -> getSource(environment).getRealtimeDeparture(); + return environment -> missingValueToNull(getSource(environment).getRealtimeDeparture()); } @Override @@ -108,4 +109,17 @@ private RoutingService getRoutingService(DataFetchingEnvironment environment) { private TripTimeOnDate getSource(DataFetchingEnvironment environment) { return environment.getSource(); } + + /** + * Generally the missing values are removed during the graph build. However, for flex + * trips they are not and have to be converted to null here. + */ + private Integer missingValueToNull(int value) { + if(value == StopTime.MISSING_VALUE) { + return null; + } + else { + return value; + } + } }