package Ġio . zer ob ase . smart tracing . api . features . organizations Ċ Ċ import Ġio . zer ob ase . smart tracing . common . models .* Ċ import Ġio . zer ob ase . smart tracing . api . resources . Creator Ċ import Ġjavax . ws . rs .* Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ Ċ @ Cons umes ( MediaType . APPLICATION _ JSON ) Ċ @ Produces ( MediaType . APPLICATION _ JSON ) Ċ class ĠS ites Resource ( ĊĠĠĠ Ġprivate Ġval Ġorg Id : ĠOrganization Id , ĊĠĠĠ Ġprivate Ġval Ġid : ĠSite Id , ĊĠĠĠ Ġprivate Ġval Ġdao : ĠOrgan izations Dao , ĊĠĠĠ Ġprivate Ġval Ġscan Types : ĠSet < String > Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Path ("/ name ") ĊĠĠĠ Ġ@ PUT ĊĠĠĠ Ġfun Ġupdate Name ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdao . update Entity Name ( id , Ġ" Site ", Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Path ("/ sc ann ables ") ĊĠĠĠ Ġ@ POST ĊĠĠĠ Ġ@ Creator ĊĠĠĠ Ġfun Ġcreate Sc ann able ( request : ĠCreate Sc ann able Request ): ĠId Wrapper Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġrequest . type ĊĠĠĠĠĠĠĠ Ġval Ġsingle Use Ġ= Ġrequest . single Use ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! scan Types . contains ( type )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= ĠResponse . status ( Response . Status . BAD _ REQUEST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. entity (" Not Ġa Ġvalid Ġtype Ġplease Ġcheck Ġ/ models / sc ann able - types ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠWeb ApplicationException ( res ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdao . create Sc ann able ( org Id , Ġid , Ġtype , Ġsingle Use ). let (:: Id Wrapper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Path ("/ sc ann ables ") ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġfun Ġget Sc ann ables (): ĠList < Sc ann able > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdao . get Sc ann ables ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Path ("/ sc ann ables /{ id }") ĊĠĠĠ Ġfun Ġdelegate Sc ann able Request (@ Path Param (" id ") Ġsc ann able Id : ĠString ): ĠSc ann ables Resource Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSc ann ables Resource ( org Id , Ġid , ĠSc ann able Id ( sc ann able Id ), Ġdao ) ĊĠĠĠ Ġ} Ċ } Ċ