package Ġcom . or uy an ke . vt bs Ċ Ċ import Ġio . ktor . application . Application Call Ċ import Ġio . ktor . application . call Ċ import Ġio . ktor . http . ContentType Ċ import Ġio . ktor . http . HttpMethod Ċ import Ġio . ktor . http . HttpStatusCode Ċ import Ġio . ktor . request . receive Ċ import Ġio . ktor . response . respond Text Ċ import Ġio . ktor . routing . Route Ċ import Ġio . ktor . routing . route Ċ import Ġio . ktor . util . pipeline . Context Dsl Ċ import Ġio . ktor . util . pipeline . Pipeline Context Ċ import Ġorg . lit ote . km ongo . coroutine . Coroutine Client Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ @ Context Dsl Ċ @ Jvm Name (" patch Typed ") Ċ inline Ġfun Ġ< re ified ĠR Ġ: ĠAny > ĠRoute . patch ( ĊĠĠĠ Ġpath : ĠString , ĊĠĠĠ Ġcross inline Ġbody : Ġsuspend ĠPipeline Context < Unit , ĠApplication Call >. ( R ) Ġ-> ĠUnit Ċ ): ĠRoute Ġ{ ĊĠĠĠ Ġreturn Ġroute ( path , ĠHttpMethod . Patch ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody ( call . receive ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun Ġ< R > ĠPipeline Context < *, ĠApplication Call >. error Aware ( block : Ġsuspend Ġ() Ġ-> ĠR ): ĠR ? Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcall . respond Error ( e . code , Ġe . localized Message ) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcall . respond Error ( HttpStatusCode . InternalServerError , Ġe . toString ()) ĊĠĠĠĠĠĠĠ Ġnull ĊĠĠĠ Ġ} Ċ } Ċ Ċ suspend Ġfun ĠApplication Call . respond Error ( code : ĠHttpStatusCode , Ġmsg : ĠString ) Ġ= ĊĠĠĠ Ġthis . respond Text ( ĊĠĠĠĠĠĠĠ Ġ""" {" code ": Ġ 1 , Ġ" msg ":" $ msg "} """, ĊĠĠĠĠĠĠĠ ĠContentType . Application . Json , ĊĠĠĠĠĠĠĠ Ġcode ĊĠĠĠ Ġ) Ċ Ċ fun ĠPipeline Context < *, ĠApplication Call >. param ( name : ĠString ) Ġ= ĊĠĠĠ Ġcall . parameters [ name ] Ġ?: Ġthrow ĠIllegalArgumentException (" Missing Ġ'$ name '") Ċ Ċ fun ĠPipeline Context < *, ĠApplication Call >. query Time ( name : ĠString ): ĠLocalDate ? Ġ= ĊĠĠĠ Ġcall . request . query Parameters [ name ]?. let Ġ{ ĊĠĠĠĠĠĠĠ ĠLocalDate . parse ( it , ĠDateTime Formatter . of Pattern (" yyyy - MM - dd ")) ĊĠĠĠ Ġ} Ċ Ċ fun ĠPipeline Context < *, ĠApplication Call >. query Time Or Epoch ( name : ĠString ): ĠLocalDate Ġ= ĊĠĠĠ Ġquery Time ( name ) Ġ?: ĠLocalDate . EPOCH Ċ Ċ fun ĠPipeline Context < *, ĠApplication Call >. query Time Or Now ( name : ĠString ): ĠLocalDate Ġ= ĊĠĠĠ Ġquery Time ( name ) Ġ?: ĠLocalDate . now () Ċ Ċ fun ĠPipeline Context < *, ĠApplication Call >. sessionId (): ĠString Ġ= ĊĠĠĠ Ġcall . request . cookies [ User Config . SESSION _ ID ] Ġ?: Ġthrow ĠAuth Required Exception () Ċ Ċ suspend Ġfun ĠPipeline Context < *, ĠApplication Call >. session User ( mongo : ĠCor outine Client ): ĠUser Ġ{ ĊĠĠĠ Ġval ĠsessionId Ġ= ĠsessionId () ĊĠĠĠ Ġval Ġdb Ġ= Ġmongo . user DB () ĊĠĠĠ Ġval Ġsession Ġ= Ġdb . sessions (). getSession ( sessionId ) ĊĠĠĠ Ġreturn Ġdb . users (). by Session ( session ) Ċ } Ċ Ċ fun ĠLocalDate . to Human Readable (): ĠString Ġ= ĊĠĠĠ Ġthis . format ( DateTime Formatter . of Pattern (" yyyy - MM - dd ")) Ċ