// ĠCopyright Ġ( c ) Ġ 2 0 1 7 , ĠDaniel ĠAnd ers en Ġ( daniel @ t roll sa head . dk ) Ċ // ĠAll Ġrights Ġreserved . Ċ // Ċ // ĠRedistribution Ġand Ġuse Ġin Ġsource Ġand Ġbinary Ġforms , Ġwith Ġor Ġwithout Ċ // Ġmodification , Ġare Ġpermitted Ġprovided Ġthat Ġthe Ġfollowing Ġconditions Ġare Ġmet : Ċ // Ċ // Ġ 1 . ĠRedistributions Ġof Ġsource Ġcode Ġmust Ġretain Ġthe Ġabove Ġcopyright Ġnotice , Ġthis Ċ // ĠĠĠ Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer . Ċ // Ġ 2 . ĠRedistributions Ġin Ġbinary Ġform Ġmust Ġreproduce Ġthe Ġabove Ġcopyright Ġnotice , Ċ // ĠĠĠ Ġthis Ġlist Ġof Ġconditions Ġand Ġthe Ġfollowing Ġdisclaimer Ġin Ġthe Ġdocumentation Ċ // ĠĠĠ Ġand / or Ġother Ġmaterials Ġprovided Ġwith Ġthe Ġdistribution . Ċ // Ġ 3 . ĠThe Ġname Ġof Ġthe Ġauthor Ġmay Ġnot Ġbe Ġused Ġto Ġendorse Ġor Ġpromote Ġproducts Ġderived Ċ // ĠĠĠ Ġfrom Ġthis Ġsoftware Ġwithout Ġspecific Ġprior Ġwritten Ġpermission . Ċ // Ċ // ĠTHIS ĠSOFTWARE ĠIS ĠPROVIDED ĠBY ĠTHE ĠCOPYRIGHT ĠHOLDERS ĠAND ĠCONTRIBUTORS Ġ" AS ĠIS " ĠAND Ċ // ĠANY ĠEXPRESS ĠOR ĠIMPLIED ĠWARRANTIES , ĠINCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠTHE ĠIMPLIED Ċ // ĠWARRANTIES ĠOF ĠMERCHANTABILITY ĠAND ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠARE Ċ // ĠDISCLAIMED . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠCOPYRIGHT ĠOWNER ĠOR ĠCONTRIBUTORS ĠBE ĠLIABLE ĠFOR Ċ // ĠANY ĠDIRECT , ĠINDIRECT , ĠINCIDENTAL , ĠSPECIAL , ĠEXEMPLARY , ĠOR ĠCONSEQUENTIAL ĠDAMAGES Ċ // Ġ( INCLUDING , ĠBUT ĠNOT ĠLIMITED ĠTO , ĠPROCUREMENT ĠOF ĠSUBSTITUTE ĠGOODS ĠOR ĠSERVICES ; Ċ // ĠLOSS ĠOF ĠUSE , ĠDATA , ĠOR ĠPROFITS ; ĠOR ĠBUSINESS ĠINTERRUPTION ) ĠHOWEVER ĠCAUSED ĠAND Ċ // ĠON ĠANY ĠTHEORY ĠOF ĠLIABILITY , ĠWHETHER ĠIN ĠCONTRACT , ĠSTRICT ĠLIABILITY , ĠOR ĠTORT Ċ // Ġ( INCLUDING ĠNEGLIGENCE ĠOR ĠOTHERWISE ) ĠARISING ĠIN ĠANY ĠWAY ĠOUT ĠOF ĠTHE ĠUSE ĠOF ĠTHIS Ċ // ĠSOFTWARE , ĠEVEN ĠIF ĠADVISED ĠOF ĠTHE ĠPOSSIBILITY ĠOF ĠSUCH ĠDAMAGE . Ċ Ċ /** Ċ Ġ* ĠRest Ġcontroller Ġresponsible Ġfor Ġhandling Ġinfo Ġchannel Ġlifecycle . Ċ Ġ*/ Ċ Ċ package Ġdk . et ik tak . backend . controller . rest Ċ Ċ import Ġdk . et ik tak . backend . controller . rest . json . add Ċ import Ġdk . et ik tak . backend . model . user . Client Ċ import Ġdk . et ik tak . backend . security . Currently Logged Client Ċ import Ġdk . et ik tak . backend . service . client . Client Service Ċ import Ġdk . et ik tak . backend . service . info channel . Info Channel Service Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġjava . util .* Ċ Ċ @ RestController Ċ @ RequestMapping ("/ service / info channel ") Ċ class ĠInfo Channel RestController Ġ@ Autowired Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinfo Channel Service : ĠInfo Channel Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġclient Service : ĠClient Service ) Ġ: ĠBase RestController () Ġ{ ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ"/", Ġmethod Ġ= ĠarrayOf ( Request Method . GET )) ĊĠĠĠ Ġfun Ġcreate Info Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam Ġuuid : ĠString ): ĠHashMap < String , ĠAny > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinfo Channel Ġ= Ġinfo Channel Service . getInfo Channel By Uuid ( uuid ) Ġ?: Ġreturn Ġnot Found Map (" Info Ġchannel ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġok Map (). add ( info Channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ"/ create /", Ġmethod Ġ= ĠarrayOf ( Request Method . POST )) ĊĠĠĠ Ġfun Ġcreate Info Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Currently Logged Client Ġlogged Client : ĠClient , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam Ġname : ĠString ): ĠHashMap < String , ĠAny > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġclient Service . getBy Uuid ( logged Client . uuid ) Ġ?: Ġreturn Ġnot Found Map (" Client ") ĊĊĠĠĠĠĠĠĠ Ġval Ġinfo Channel Ġ= Ġinfo Channel Service . create Info Channel ( client , Ġname ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġok Map (). add ( info Channel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ RequestMapping ( value Ġ= Ġ"/ follow /", Ġmethod Ġ= ĠarrayOf ( Request Method . POST )) ĊĠĠĠ Ġfun Ġfollow Info Channel ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Currently Logged Client Ġlogged Client : ĠClient , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam Ġinfo Channel Uuid : ĠString ): ĠHashMap < String , ĠAny > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= Ġclient Service . getBy Uuid ( logged Client . uuid ) Ġ?: Ġreturn Ġnot Found Map (" Client ") ĊĠĠĠĠĠĠĠ Ġval Ġinfo Channel Ġ= Ġinfo Channel Service . getInfo Channel By Uuid ( info Channel Uuid ) Ġ?: Ġreturn Ġnot Found Map (" Info Ġchannel ") ĊĊĠĠĠĠĠĠĠ Ġinfo Channel Service . follow Info Channel ( client , Ġinfo Channel ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġok Map () ĊĠĠĠ Ġ} Ċ } Ċ