/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠF ord ĠMotor ĠCompany Ċ Ġ* ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . ford . internal projects . people mo ver . tag . product Ċ Ċ import Ġcom . ford . internal projects . people mo ver . tag . Tag Request Ċ import Ġcom . ford . internal projects . people mo ver . utilities . Basic Logger Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . security . access . pre post . Pre Authorize Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġjavax . validation . Valid Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api / spaces /{ space Uuid }/ product - tags ") Ċ class ĠProduct Tag Controller Ġ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġproduct Tag Service : ĠProduct Tag Service , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠBasic Logger Ċ ) Ġ{ ĊĠĠĠ Ġ@ Pre Authorize (" has Permission (# space Uuid , Ġ' write ') ") ĊĠĠĠ Ġ@ PostMapping ĊĠĠĠ Ġfun Ġcreate Product Tag ( ĊĠĠĠĠĠĠĠ Ġ@ PathVariable Ġspace Uuid : ĠString , ĊĠĠĠĠĠĠĠ Ġ@ Valid Ġ@ RequestBody Ġrequest : ĠTag Request ĊĠĠĠ Ġ): ĠResponseEntity < Product Tag > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcreated Product Tag : ĠProduct Tag Ġ= Ġproduct Tag Service ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Product Tag For Space ( request , Ġspace Uuid ) ĊĠĠĠĠĠĠĠ Ġlogger . log Info Message (" Product Ġtag Ġ[ ${ created Product Tag . name }] Ġcreated Ġfor Ġspace : Ġ[$ space Uuid ]. ") ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok ( created Product Tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Pre Authorize (" has Permission (# space Uuid , Ġ' read ') ") ĊĠĠĠ Ġ@ GetMapping ĊĠĠĠ Ġfun ĠgetAll Product Tags (@ PathVariable Ġspace Uuid : ĠString ): ĠResponseEntity < List < Product Tag >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok ( product Tag Service . getAll Product Tags ( space Uuid )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Pre Authorize (" has Permission (# space Uuid , Ġ' write ') ") ĊĠĠĠ Ġ@ Delete Mapping ( path Ġ= Ġ[" /{ product Tag Id }" ]) ĊĠĠĠ Ġfun Ġdelete Product Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġspace Uuid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġproduct Tag Id : ĠInt ĊĠĠĠ Ġ): ĠResponseEntity < Unit > Ġ{ ĊĠĠĠĠĠĠĠ Ġproduct Tag Service . delete Product Tag ( product Tag Id , Ġspace Uuid ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Pre Authorize (" has Permission (# space Uuid , Ġ' write ') ") ĊĠĠĠ Ġ@ Put Mapping ( path Ġ= Ġ[" /{ product Tag Id }" ]) ĊĠĠĠ Ġfun Ġedit Product Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġspace Uuid : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ PathVariable Ġproduct Tag Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Valid Ġ@ RequestBody Ġtag Request : ĠTag Request ĊĠĠĠ Ġ): ĠResponseEntity < Product Tag > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġedited Product Tag Ġ= Ġproduct Tag Service . edit Product Tag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspace Uuid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Tag Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Request ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok ( edited Product Tag ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ