import ../types import ./remark import ./point import ./operator import ./journey import ./line import ./polyline import json import sequtils import strutils proc parseJourneysResponse*(data: JsonNode, isRefresh: bool = false): 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 = data["res"]["common"]["prodL"] let polylines = map(data["res"]["common"]["polyL"].getElems(), mkParsePolyline(points)) let timestamp = parseInt(data["res"]["planrtTS"].getStr()) let common = CommonData(points: points, operators: operators, remarks: remarks, lines: lines, polylines: polylines, timestamp: timestamp) result.journeys = data["res"]["outConL"].getElems().map(mkParseJourney(common)) if not isRefresh: if data["res"].hasKey("outCtxScrB"): result.earlierRef = data["res"]["outCtxScrB"].getStr() if data["res"].hasKey("outCtxScrF"): result.laterRef = data["res"]["outCtxScrF"].getStr()