Skip to content

Commit

Permalink
parse uncertainty/revenue values in CommuterRailDepartures.Json (#729)
Browse files Browse the repository at this point in the history
* parse uncertainty values in CommuterRailDepartures.Json

* parse revenue value
  • Loading branch information
bfauble authored Dec 21, 2023
1 parent d206680 commit fa11d07
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 4 deletions.
15 changes: 14 additions & 1 deletion apps/parse/lib/parse/commuter_rail_departures/json.ex
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,8 @@ defmodule Parse.CommuterRailDepartures.JSON do
route_pattern_id: Map.get(trip, "route_pattern_id"),
direction_id: Map.get(trip, "direction_id"),
vehicle_id: vehicle_id(raw),
schedule_relationship: schedule_relationship(Map.get(trip, "schedule_relationship"))
schedule_relationship: schedule_relationship(Map.get(trip, "schedule_relationship")),
revenue: parse_revenue(Map.get(trip, "revenue", true))
}
end

Expand All @@ -42,7 +43,9 @@ defmodule Parse.CommuterRailDepartures.JSON do
base
| stop_id: Map.get(update, "stop_id"),
arrival_time: time(Map.get(update, "arrival")),
arrival_uncertainty: parse_uncertainty(Map.get(update, "arrival")),
departure_time: time(Map.get(update, "departure")),
departure_uncertainty: parse_uncertainty(Map.get(update, "departure")),
stop_sequence: Map.get(update, "stop_sequence"),
schedule_relationship: best_schedule_relationship(base.schedule_relationship, update),
status: Map.get(update, "boarding_status")
Expand All @@ -57,6 +60,12 @@ defmodule Parse.CommuterRailDepartures.JSON do
nil
end

defp parse_uncertainty(%{"uncertainty" => uncertainty}) when is_integer(uncertainty) do
uncertainty
end

defp parse_uncertainty(_), do: nil

defp vehicle_id(%{"vehicle" => %{"id" => id}}), do: id
defp vehicle_id(_), do: nil

Expand All @@ -81,4 +90,8 @@ defmodule Parse.CommuterRailDepartures.JSON do

defp schedule_relationship("CANCELED"), do: :cancelled
defp schedule_relationship(_), do: nil

defp parse_revenue(false), do: :NON_REVENUE

defp parse_revenue(_), do: :REVENUE
end
11 changes: 8 additions & 3 deletions apps/parse/test/parse/commuter_rail_departures/json_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@ defmodule Parse.CommuterRailDepartures.JSONTest do
"schedule_relationship" => "SCHEDULED",
"route_id" => "CR-Haverhill",
"route_pattern_id" => "CR-Haverhill-0-0",
"direction_id" => 0
"direction_id" => 0,
"revenue" => false
}
@update %{
"stop_id" => "place-north",
"stop_sequence" => 6,
"departure" => %{
"time" => 1_502_290_500
"time" => 1_502_290_500,
"uncertainty" => 60
}
}

Expand Down Expand Up @@ -63,7 +65,8 @@ defmodule Parse.CommuterRailDepartures.JSONTest do
trip_id: @trip["trip_id"],
route_id: @trip["route_id"],
route_pattern_id: @trip["route_pattern_id"],
direction_id: @trip["direction_id"]
direction_id: @trip["direction_id"],
revenue: :NON_REVENUE
}

actual = base_prediction(@trip, %{})
Expand Down Expand Up @@ -98,7 +101,9 @@ defmodule Parse.CommuterRailDepartures.JSONTest do
route_pattern_id: @trip["route_pattern_id"],
direction_id: @trip["direction_id"],
arrival_time: nil,
arrival_uncertainty: nil,
departure_time: Parse.Timezone.unix_to_local(@update["departure"]["time"]),
departure_uncertainty: 60,
stop_sequence: @update["stop_sequence"],
schedule_relationship: nil,
status: nil
Expand Down

0 comments on commit fa11d07

Please sign in to comment.