package Ġio . kot less . dsl . model Ċ Ċ import Ġio . kot less . MimeType Ċ import Ġkotlinx . serialization . Serializable Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . HashMap Ċ Ċ /** ĠHTTP 's Ġrequest ĠApi Gateway Ġrepresentation Ġ*/ Ċ @ Serializable Ċ data Ġclass ĠHttpRequest ( ĊĠĠĠ Ġval Ġresource : ĠString , ĊĠĠĠ Ġval Ġpath : ĠString , ĊĠĠĠ Ġval Ġhttp Method : ĠString , ĊĠĠĠ Ġval Ġheaders : ĠMap < String , ĠString > ?, ĊĠĠĠ Ġval ĠqueryString Parameters : ĠMap < String , ĠString > ?, ĊĠĠĠ Ġval Ġpath Parameters : ĠMap < String , ĠString > ?, ĊĠĠĠ Ġval Ġrequest Context : ĠRequest Context , ĊĠĠĠ Ġval Ġbody : ĠString ? Ċ ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbody Post Params Map Ġ= Ġbody ?. split ("& ") ?. map NotNull Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( name , Ġvalue ) Ġ= Ġit . split (" =") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġto Ġvalue ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ?. toMap () ĊĊĠĠĠ Ġval Ġall Params Ġ= ĠqueryString Parameters . or Empty () Ġ+ Ġbody Post Params Map . or Empty () ĊĊĠĠĠ Ġ@ Serializable ĊĠĠĠ Ġdata Ġclass ĠRequest Context ( ĊĠĠĠĠĠĠĠ Ġval Ġidentity : ĠRequest Identity , ĊĠĠĠĠĠĠĠ Ġval Ġstage : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġpath : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġprotocol : ĠString ?, ĊĠĠĠĠĠĠĠ Ġval Ġrequest Time Epoch : ĠLong , ĊĠĠĠĠĠĠĠ Ġval Ġdomain Name : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Serializable ĊĠĠĠĠĠĠĠ Ġdata Ġclass ĠRequest Identity ( val Ġsource Ip : ĠString , Ġval Ġuser Agent : ĠString ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* ĠHTTP 's Ġresponse ĠApi Gateway Ġrepresentation Ċ Ġ* Ċ Ġ* Ġ@ param ĠstatusCode Ġstatus Ġcode Ġto Ġreturn Ċ Ġ* Ġ@ param Ġheaders Ġheaders Ġto Ġpass Ġto Ġclient Ċ Ġ* Ġ@ param Ġbody Ġpayload Ġof Ġresponse Ċ Ġ*/ Ċ @ Serializable Ċ data Ġclass ĠHttpResponse ( val ĠstatusCode : ĠInt , Ġval Ġheaders : ĠHashMap < String , ĠString > Ġ= ĠHashMap (), Ġval Ġbody : ĠString ?, Ġval Ġis Base 6 4 Encoded : ĠBoolean ) Ġ{ ĊĠĠĠ Ġconstructor ( statusCode : ĠInt , Ġmime : ĠMime Type , Ġbody : ĠString ? Ġ= Ġnull ) Ġ: Ġthis ( statusCode , Ġhash Map Of (" Content - Type " Ġto Ġmime . mime Text ), Ġbody , Ġfalse ) ĊĠĠĠ Ġconstructor ( statusCode : ĠInt , Ġmime : ĠMime Type , Ġbody : ĠByteArray ) Ġ: Ġthis ( statusCode , Ġhash Map Of (" Content - Type " Ġto Ġmime . mime Text ), ĠBase 6 4 . get Encoder (). encode ToString ( body ), Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( mime . is Binary ) Ġ{ Ġ" Base 6 4 Ġencoded Ġresponse Ġcan Ġbe Ġused Ġonly Ġfor Ġbinary Ġtypes " Ġ} ĊĠĠĠ Ġ} Ċ } Ċ