package Ġch . n ine . con fluence . conf idential ity . admin Ċ Ċ import Ġch . n ine . con fluence . conf idential ity . admin . model . Admin ister Conf idential ity Row Ċ import Ġch . n ine . con fluence . conf idential ity . api . model . NotFound Ċ import Ġch . n ine . con fluence . conf idential ity . service . Permission Service Ċ import Ġch . n ine . con fluence . conf idential ity . service . Space Conf idential ity Service Ċ import Ġcom . atlassian . con fluence . spaces . Space Ċ import Ġcom . atlassian . con fluence . spaces . Space Manager Ċ import Ġorg . apache . log 4 j . Log Manager Ċ import Ġjavax . ws . rs .* Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ import Ġjavax . ws . rs . core . Response . Status . FOR BID DEN Ċ import Ġjavax . ws . rs . core . Response . Status . NOT _ FOUND Ċ Ċ /** Ċ Ġ* ĠController Ġthat 's Ġresponsible Ġfor Ġconfiguring Ġcon fluence - conf idential ity Ġplugin Ċ Ġ*/ Ċ @ Cons umes ( MediaType . APPLICATION _ JSON ) Ċ @ Produces ( MediaType . APPLICATION _ JSON ) Ċ @ Path ("/ admin ister / conf idential ity ") Ċ class ĠConf idential ity AdminController Ġconstructor ( private Ġval Ġservice : ĠSpace Conf idential ity Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpermission Service : ĠPermission Service , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġspace Manager : ĠSpace Manager ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Manager . getLogger ( this :: class . java . name . substring Before ("\ $ Companion ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PUT ĊĠĠĠ Ġ@ Path ("/ enabled /{ space Key }") ĊĠĠĠ Ġfun Ġchange Conf idential ity Enabled (@ Path Param (" space Key ") Ġspace Key : ĠString ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Ġ= Ġspace Manager . get Space ( space Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( space Ġ== Ġnull ) Ġ-> Ġnot Found () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can View Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can Admin ister Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse . ok ( service . change Enabled ( space )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Exception Ġoccurred Ġwhile Ġtrying Ġto Ġget Ġpage Ġwith Ġid : Ġ$ space Key ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path ("/ { space Key }") ĊĠĠĠ Ġfun Ġget Conf idential ity Options (@ Path Param (" space Key ") Ġspace Key : ĠString ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Ġ= Ġspace Manager . get Space ( space Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( space Ġ== Ġnull ) Ġ-> Ġnot Found () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can View Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can Admin ister Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse . ok ( service . get Conf idential ity Options ( space )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Exception Ġoccurred Ġwhile Ġtrying Ġto Ġget Ġpage Ġwith Ġid : Ġ$ space Key ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ POST ĊĠĠĠ Ġ@ Path ("/ { space Key }") ĊĠĠĠ Ġfun Ġset Conf idential ity Options (@ Path Param (" space Key ") Ġspace Key : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconf idential ity Row : ĠAdmin ister Conf idential ity Row ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Ġ= Ġspace Manager . get Space ( space Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( space Ġ== Ġnull ) Ġ-> Ġnot Found () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can View Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can Admin ister Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse . ok ( service . save Conf idential ity ( space , Ġconf idential ity Row )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Exception Ġoccurred Ġwhile Ġtrying Ġto Ġsave Ġconf idential ity List : Ġ$ conf idential ity Row , Ġenabled : Ġ'' Ġfor Ġspace : Ġ$ space Key ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PUT ĊĠĠĠ Ġ@ Path ("/ { space Key }/{ id }") ĊĠĠĠ Ġfun Ġupdate Conf idential ity (@ Path Param (" space Key ") Ġspace Key : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Path Param (" id ") Ġid : ĠInt ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconf idential ity : ĠAdmin ister Conf idential ity Row ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Ġ= Ġspace Manager . get Space ( space Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( id Ġ== Ġnull ) Ġ-> Ġnot Found (" Invalid Ġid : Ġ$ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( space Ġ== Ġnull ) Ġ-> Ġnot Found () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can View Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can Admin ister Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse . ok ( service . update Conf idential ity ( space , Ġid , Ġconf idential ity )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Exception Ġoccurred Ġwhile Ġtrying Ġto Ġadd Ġnew Ġconf idential ity : Ġ$ conf idential ity , Ġfor Ġspace : Ġ$ space Key ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ DELETE ĊĠĠĠ Ġ@ Path ("/ { space Key }/{ id }") ĊĠĠĠ Ġfun Ġdelete Conf idential ity Option (@ Path Param (" space Key ") Ġspace Key : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Path Param (" id ") Ġid : ĠInt ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspace Ġ= Ġspace Manager . get Space ( space Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( space Ġ== Ġnull ) Ġ-> Ġnot Found (" Invalid Ġid : Ġ$ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can View Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ(! can Admin ister Space ( space )) Ġ-> Ġforbidden () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠResponse . ok ( service . remove Conf idential ity ( space , Ġid )). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Exception Ġoccurred Ġwhile Ġtrying Ġto Ġremove Ġconf idential ity Ġwith Ġid : Ġ$ id , Ġfor Ġspace : Ġ$ space Key ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġserver Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcan View Space ( space : ĠSpace ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermission Service . can User View ( space ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcan Admin ister Space ( space : ĠSpace ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermission Service . can User Administr er Space ( space ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġforbidden () Ġ= ĠResponse . status ( FOR BID DEN ). build () ĊĊĠĠĠ Ġprivate Ġfun Ġnot Found ( msg : ĠString ): ĠResponse Ġ= ĠResponse . status ( NOT _ FOUND ). entity ( NotFound ( msg )). build () ĊĊĠĠĠ Ġprivate Ġfun Ġnot Found (): ĠResponse Ġ= ĠResponse . status ( NOT _ FOUND ). build () ĊĊĠĠĠ Ġprivate Ġfun Ġserver Error () Ġ= ĠResponse . server Error (). entity ( false ). build () Ċ } Ċ