package Ġde . dd k fm . plan 4 ba . controller Ċ Ċ import Ġde . dd k fm . plan 4 ba . models .* Ċ import Ġde . dd k fm . plan 4 ba . models . database . Hibernate User Group Ċ import Ġde . dd k fm . plan 4 ba . utils .* Ċ import Ġspark . Request Ċ import Ġspark . Response Ċ import Ġjavax . ws . rs .* Ċ Ċ @ Path ("/ groups ") Ċ class ĠUser Group Controller ( req : ĠRequest , Ġresp : ĠResponse ) Ġ: ĠController Interface ( req Ġ= Ġreq , Ġresp Ġ= Ġresp ) Ġ{ ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("") ĊĠĠĠ Ġfun Ġall Groups ( ĊĠĠĠĠĠĠĠ Ġ@ QueryParam (" uid ") Ġuid : ĠString ĊĠĠĠ Ġ): ĠList < User Group > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuid String Ġ= Ġif ( uid . isNotEmpty ()) Ġ" uid Ġ= Ġ'$ uid '" Ġelse Ġ" 1 = 1 " ĊĠĠĠĠĠĠĠ Ġval Ġgroups Ġ= Ġin Session Ġ{ Ġit . list < Hibernate User Group >( uid String ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġgroups ?. map Ġ{ Ġit . to Model () Ġ} Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ : id ") ĊĠĠĠ Ġfun Ġget Group (@ Path Param (" id ") Ġid : ĠInt ): ĠUser Group Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgroup Ġ= Ġin Session Ġ{ Ġit . single < Hibernate User Group >( id ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġgroup ?. to Model () Ġ?: Ġthrow ĠNotFound () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PUT ĊĠĠĠ Ġ@ Path ("") ĊĠĠĠ Ġfun Ġcreate Group ( group : ĠUser Group ): ĠUser Group Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġexisting Groups Ġ= Ġin Session Ġ{ Ġit . list < Hibernate User Group >(" uid Ġ= Ġ'${ group . uid }' ") Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( existing Groups Ġ== Ġnull Ġ|| Ġexisting Groups . isNotEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠAlready Exists (" Group Ġalready Ġexists ") ĊĠĠĠĠĠĠĠ Ġin Session Ġ{ Ġsession Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsession Ġsave Ġgroup . to Hibernate < Hibernate User Group >() ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġgroup ĊĠĠĠ Ġ} Ċ }