package Ġcom . github . m ck ern ant 1 . lol . es ports . api . lambda . handlers Ċ Ċ import Ġcom . amazonaws . services . lambda . runtime . Context Ċ import Ġcom . amazonaws . services . lambda . runtime . Request Stream Handler Ċ import Ġcom . github . m ck ern ant 1 . lol . es ports . api . lambda . gson Ċ import Ġcom . github . m ck ern ant 1 . lol . es ports . api . lambda . models . ErrorResponse Ċ import Ġcom . github . m ck ern ant 1 . lol . es ports . api . lambda . models . Response Ċ import Ġcom . google . gson . JsonObject Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ Ċ abstract Ġclass ĠAbstract PathVariable RequestHandler Ġ: ĠRequest Stream Handler Ġ{ ĊĊĠĠĠ Ġprotected Ġval Ġlogger : ĠLogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĊĠĠĠ Ġprotected Ġabstract Ġval Ġpath ParamName : ĠString ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Request ( input : ĠInputStream , Ġoutput : ĠOutputStream , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresp Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Text Ġ= Ġinput . buffered Reader (). use ( BufferedReader :: read Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Json Ġ= Ġgson . fromJson ( input Text , ĠJsonObject :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparam Value Ġ= Ġinput Json [" path Parameters "] !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as JsonObject !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( path ParamName ) !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. asString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp Ġ= Ġexecute ( param Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresp ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Hit ĠException ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠError Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message Ġ?: Ġ" null ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . java Class . simple Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 5 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoutput . buffered Writer (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( resp . toJson ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġfun Ġexecute ( param Value : ĠString ): ĠResponse ĊĊ Ċ } Ċ