package Ġcom . book . recipe . util Ċ Ċ import Ġio . ktor . application .* Ċ import Ġio . ktor . client .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ import Ġio . ktor . response .* Ċ import Ġio . ktor . util . pipeline .* Ċ import Ġkotlinx . serialization . decode FromString Ċ import Ġkotlinx . serialization . json . Json Ċ Ċ private Ġconst Ġval ĠID Ġ= Ġ" id " Ċ Ċ suspend Ġinline Ġfun Ġ< re ified ĠT > ĠhttpRequest ( url : ĠString , Ġparams : ĠMap < String , ĠAny >): ĠT Ġ{ ĊĠĠĠ Ġval Ġresponse Ġ= ĠHttpClient (). use Ġ{ Ġclient Ġ-> ĊĠĠĠĠĠĠĠ Ġclient . get < HttpResponse >( url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparams . forEach Ġ{ Ġparameter ( it . key , Ġit . value ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}. read Text () ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠJson Ġ{ Ġignore Unknown Keys Ġ= Ġtrue Ġ}. decode FromString ( response ) Ċ } Ċ Ċ suspend Ġfun ĠPipeline Context < Unit , ĠApplication Call >. respond BadRequest ( param : ĠString Ġ= ĠID ) Ġ{ ĊĠĠĠ Ġcall . respond Text ( ĊĠĠĠĠĠĠĠ Ġ" Missing Ġor Ġmalformed Ġ$ param ", ĊĠĠĠĠĠĠĠ Ġstatus Ġ= ĠHttpStatusCode . BadRequest ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠPipeline Context < Unit , ĠApplication Call >. getId Param OrNull (): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġcall . parameters [" id "] ?. toInt OrNull () Ċ } Ċ