22 lines
890 B
Nim
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()
|