package Ġme . j ason 5 lee . k tp ost . getPost Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonInclude Ċ import Ġio . vertx . ext . web . Routing Context Ċ import Ġme . j ason 5 lee . k tp ost . common .* Ċ import Ġme . j ason 5 lee . res uk t . getOrElse Ċ Ċ internal Ġfun Ġget Post Api ( getPost : ĠGet Post ) Ġ= Ġapi ( ĊĠ Ġpath Ġ= Ġ{ Ġget ("/ post /: post Id ") Ġ} Ċ ) Ġ{ Ġctx Ġ-> ĊĠ Ġval Ġinput Ġ= ĠPost Id ( ĊĠĠĠ Ġparse Id ( ctx . path Param (" post Id ") Ġ?: Ġreturn @ api Ġctx . respond No Post Id ()) ĊĠĠĠĠĠ Ġ. getOrElse Ġ{ Ġreturn @ api Ġctx . respond Post NotFound () Ġ} ĊĠ Ġ) ĊĠ Ġval Ġoutput Ġ= Ġget Post ( input ). getOrElse Ġ{ ĊĠĠĠ Ġreturn @ api Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠ ĠFailure . Post NotFound Ġ-> Ġctx . respond Post NotFound () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġval Ġ( post , Ġurl ) Ġ= Ġwhen Ġ( val Ġcontent Ġ= Ġoutput . content ) Ġ{ ĊĠĠĠ Ġis ĠPost Content . Post Ġ-> ĠPair ( content . text , Ġnull ) ĊĠĠĠ Ġis ĠPost Content . Url Ġ-> ĠPair ( null , Ġcontent . url . toString ()) ĊĠ Ġ} ĊĊĠ Ġ@ Suppress (" unused ") ĊĠ Ġ@ JsonInclude ( JsonInclude . Include . NON _ NULL ) ĊĠ Ġclass ĠResponse Dto ( ĊĠĠĠ Ġval Ġcreator Id : ĠString , ĊĠĠĠ Ġval Ġcreator Name : ĠString , ĊĠĠĠ Ġval Ġcreation Time : ĠLong , ĊĠĠĠ Ġval Ġtitle : ĠString , ĊĠĠĠ Ġval Ġpost : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġurl : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġlast Modified : ĠLong ? Ġ= Ġnull , ĊĠ Ġ) ĊĊĠ Ġctx . json ( ĊĠĠĠ ĠResponse Dto ( ĊĠĠĠĠĠ Ġcreator Id Ġ= Ġformat Id ( output . creator . id . value ), ĊĠĠĠĠĠ Ġcreator Name Ġ= Ġoutput . creator . name . value , ĊĠĠĠĠĠ Ġcreation Time Ġ= Ġoutput . creation . utc , ĊĠĠĠĠĠ Ġtitle Ġ= Ġoutput . title . value , ĊĠĠĠĠĠ Ġpost Ġ= Ġpost , ĊĠĠĠĠĠ Ġurl Ġ= Ġurl , ĊĠĠĠĠĠ Ġlast Modified Ġ= Ġoutput . lastModified ?. utc , ĊĠĠĠ Ġ) ĊĠ Ġ) Ċ } Ċ Ċ private Ġsuspend Ġfun ĠRouting Context . respond No Post Id (): ĠUnit Ġ= ĊĠ Ġrespond Json ( ĊĠĠĠ ĠstatusCode Ġ= Ġ 4 0 0 , Ġ// ĠBad ĠRequest ĊĠĠĠ Ġbody Ġ= ĠFailure Body ( field Ġ= Ġ" post Id ", Ġreason Ġ= Ġ" parameter Ġnot Ġprovided ") ĊĠ Ġ) Ċ Ċ private Ġsuspend Ġfun ĠRouting Context . respond Post NotFound (): ĠUnit Ġ= ĊĠ Ġrespond Json ( ĊĠĠĠ ĠstatusCode Ġ= Ġ 4 0 4 , Ġ// ĠNot ĠFound ĊĠĠĠ Ġbody Ġ= ĠFailure Body ( ĊĠĠĠĠĠ Ġfield Ġ= Ġ" post Id ", ĊĠĠĠĠĠ Ġreason Ġ= Ġ" post Ġnot Ġfound " ĊĠĠĠ Ġ) ĊĠ Ġ) Ċ