package Ġio . bar ine k . continu um . back log Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġio . bar ine k . continu um . rest support . Basic Handler Ċ import Ġorg . eclipse . jetty . server . Request Ċ import Ġjava . util . Arrays . asList Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ import Ġjavax . servlet . http . HttpServletResponse Ċ Ċ class ĠStory Controller ( val Ġmapper : ĠObjectMapper , Ġval Ġgateway : ĠStory Data Gateway , Ġval Ġclient : ĠProject Client ) Ġ: ĠBasic Handler () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( s : ĠString , Ġrequest : ĠRequest , Ġhttp Servlet Request : ĠHttpServletRequest , Ġhttp Servlet Response : ĠHttpServletResponse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpost ("/ stories ", Ġas List (" application / json ", Ġ" application / vnd . app continu um . v 1 + json "), Ġrequest , Ġhttp Servlet Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstory Ġ= Ġmapper . readValue ( request . reader , ĠStory Info :: class . java ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project IsActive ( story . projectId )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrecord Ġ= Ġgateway . create ( story . projectId , Ġstory . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . writeValue ( http Servlet Response . output Stream , ĠStory Info ( record . id , Ġrecord . projectId , Ġrecord . name , Ġ" story Ġinfo ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget ("/ stories ", Ġas List (" application / json ", Ġ" application / vnd . app continu um . v 1 + json "), Ġrequest , Ġhttp Servlet Response ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠprojectId Ġ= Ġrequest . getParameter (" projectId ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġgateway . findBy ( projectId . to Long ()). map Ġ{ Ġrecord Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStory Info ( record . id , Ġrecord . projectId , Ġrecord . name , Ġ" story Ġinfo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmapper . writeValue ( http Servlet Response . output Stream , Ġlist ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġproject IsActive ( projectId : ĠLong ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġclient . getProject ( projectId ) ĊĠĠĠĠĠĠĠ Ġreturn Ġproject Ġ!= Ġnull Ġ&& Ġproject . active ĊĠĠĠ Ġ} Ċ }