package Ġcom . example . server . local . models Ċ Ċ import Ġcom . example . server . local . models . dto . Response Dto Ċ import Ġfi . iki . el onen . Nano HTTP D Ċ Ċ class ĠLocal Server ( hostname : ĠString ? Ġ= Ġnull , Ġport : ĠInt Ġ= Ġdefault Port ) Ġ: ĊĠĠĠĠĠĠĠ ĠN ano HTTP D ( hostname , Ġport ) Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġresponses : ĠMutable Map < String , ĠResponse Dto > ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġconst Ġval ĠERROR _ DESCRIPTION Ġ= Ġ"# ERROR _ DESCRIPTION #" ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠURI _ EXAMPLE Ġ= Ġ"# URI _ EXAMPLE #" ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ CONTENT _ TYPE Ġ= Ġ" text / html " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ CONTENT Ġ= Ġ"< head />< body >" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"< big > It Ġworks ! Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n < br /> Ġ< b >" Ġ+ ĠERROR _ DESCRIPTION Ġ+ Ġ"</ b >" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n < br /> ĠHowever , Ġthere Ġis Ġan Ġissue Ġwith Ġyour Ġassets . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"\ n < br /> ĠTODO ĠCreate Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ\ n < br /> Ġ< b > src / main / assets / response / test . header . json </ b >" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ\ n < br /> ĠContent : Ġ{ \" uri \": Ġ\"" Ġ+ ĠURI _ EXAMPLE Ġ+ Ġ"\" }" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ\ n < br /> Ġand " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġ\ n < br /> Ġ< b > src / main / assets / response / test . body .* </ b > Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"</ big ></ body >" ĊĊĠĠĠĠĠĠĠ Ġconst Ġval Ġdefault Port Ġ= Ġ 7 7 7 7 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġserve ( session : ĠI HTTP Session ?): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcode : ĠResponse . Status ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġcontent : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar ĠcontentType : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( responses . containsKey ( session ?. uri )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresponses [ session ?. uri ]?. let Ġ{ Ġresponse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . header . statusCode ?. let Ġ{ Ġlocal Code Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġint Code Ġ= Ġlocal Code . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . Status . values (). as Sequence (). filter Ġ{ Ġnano Code Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnano Code . request Status Ġ== Ġint Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. forEach Ġ{ Ġnano Code Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġnano Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġcode Ġ?: ĠResponse . Status . OK ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġresponse . body Ġ?: Ġcode !!. description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType Ġ= Ġresponse . header . ContentType ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcode Ġ= Ġcode Ġ?: ĠResponse . Status . NOT _ FOUND ĊĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcontent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDEFAULT _ CONTENT . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( URI _ EXAMPLE , session ?. uri . toString ()). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace ( ERROR _ DESCRIPTION , Ġcode !!. description ) ĊĠĠĠĠĠĠĠ ĠcontentType Ġ= ĠcontentType Ġ?: ĠDEFAULT _ CONTENT _ TYPE ĊĊĠĠĠĠĠĠĠ Ġreturn Ġnew Fixed Length Response ( code , ĠcontentType , Ġcontent ) ĊĠĠĠ Ġ} Ċ }