package Ġcom . jetbrains . hand son . mpp . mobile . api Ċ Ċ import Ġcom . so y wiz . k lock . DateFormat Ċ import Ġcom . so y wiz . k lock . parse Ċ import Ġio . ktor . client . HttpClient Ċ import Ġio . ktor . client . features . json . Json Feature Ċ import Ġio . ktor . client . features . json . serializer . Kotlin x Serializer Ċ import Ġio . ktor . client . request . get Ċ import Ġio . ktor . client . statement . HttpResponse Ċ import Ġio . ktor . client . statement . read Text Ċ import Ġkotlinx . serialization .* Ċ Ċ @ Serializable Ċ data Ġclass ĠF ares Response ( ĊĠĠĠ Ġval Ġoutbound Jo urney s : ĠList < Jo urney Option > Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠDateTime ( val ĠdateTime : Ġcom . so y wiz . k lock . DateTime Tz ){ ĊĠĠĠ Ġ@ Serializer ( for Class Ġ= ĠDateTime :: class ) ĊĠĠĠ Ġcompanion Ġobject Ġ: ĠK Serializer < DateTime > Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠDate Format (" yyyy - MM - dd ' T ' HH : mm : ss . SS S XXX ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( decoder : ĠDecoder ): ĠDateTime Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateTime String Ġ= Ġdecoder . decode String () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠDateTime ( date Format . parse ( dateTime String )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġserialize ( encoder : ĠEncoder , Ġvalue : ĠDateTime ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateTime String Ġ= ĠdateFormat . format ( value . dateTime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġencoder . encode String ( dateTime String ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Serializable Ċ data Ġclass ĠJo urney Option ( ĊĠĠĠ Ġval Ġjourney Option Token : ĠString , ĊĠĠĠ Ġval Ġjourney Id : ĠString , ĊĠĠĠ Ġval Ġorigin Station : ĠJo urney Option Station , ĊĠĠĠ Ġval Ġdestination Station : ĠJo urney Option Station , ĊĠĠĠ Ġval Ġdepart ure Time : ĠDateTime , ĊĠĠĠ Ġval Ġar rival Time : ĠDateTime , ĊĠĠĠ Ġval Ġdepart ure Real Time : ĠDateTime , ĊĠĠĠ Ġval Ġar rival Real Time : ĠDateTime , ĊĠĠĠ Ġval Ġjourney Duration In Minutes : ĠInt Ċ ) Ċ Ċ @ Serializable Ċ data Ġclass ĠJo urney Option Station ( ĊĠĠĠ Ġval ĠdisplayName : ĠString , ĊĠĠĠ Ġval Ġc rs : ĠString , ĊĠĠĠ Ġval Ġn lc : ĠString Ċ ) Ċ Ċ @ Implicit Reflection Serializer Ċ @ Opt In ( Un stable Default :: class ) Ċ suspend Ġfun ĠHttpClient . getF ares ( ĊĠĠĠ Ġorigin Code : ĠString , ĊĠĠĠ Ġdestination Code : ĠString , ĊĠĠĠ Ġtime : ĠString Ċ ): ĠF ares Response ? Ġ{ ĊĠĠĠ Ġ// ĠGet Ġthe Ġcontent Ġof Ġan ĠURL . ĊĠĠĠ Ġval Ġresponse : ĠF ares Response ? Ġ= ĊĠĠĠĠĠĠĠ Ġget < F ares Response ?> (" https :// mobile - api - dev . l ner . co . uk / v 1 / fa res ? origin Station =$ origin Code & destination Station =$ destination Code & outbound DateTime =$ time % 2 B 0 0 % 3 A 0 0 & inbound DateTime =$ time % 2 B 0 0 % 3 A 0 0 & numberOf Children = 1 & numberOf Ad ult s = 0 & do Split Ticket ing = false ") ĊĊĠĠĠ Ġreturn Ġresponse Ċ }