oeffisearch/src/backend/hafas/parse/journeys_response.nim
2020-02-07 14:09:42 +01:00

22 lines
890 B
Nim

import ../types
import ./remark
import ./point
import ./operator
import ./journey
import ./line
import json
import sequtils
import strutils
proc parseJourneysResponse*(data: JsonNode): JourneysResponse =
let points = map(data["res"]["common"]["locL"].getElems(), parsePoint)
let operators = map(data["res"]["common"]["opL"].getElems(), parseOperator)
let remarks = map(data["res"]["common"]["remL"].getElems(), parseRemark)
let lines = map(data["res"]["common"]["prodL"].getElems(), mkParseLine(operators))
let timestamp = parseInt(data["res"]["planrtTS"].getStr())
let common = CommonData(points: points, operators: operators, remarks: remarks, lines: lines, timestamp: timestamp)
result.journeys = data["res"]["outConL"].getElems().map(mkParseJourney(common))
result.earlierRef = data["res"]["outCtxScrB"].getStr()
result.laterRef = data["res"]["outCtxScrF"].getStr()