ctucx.git: nimhafas

[nimlang] hafas-client library

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
import json
import sequtils
import strutils
import ../types
import ./remark
import ./point
import ./operator
import ./journey
import ./line
import ./polyline

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()