package Ġnom . br un ok ar po . person web . controller Ċ Ċ import Ġnom . br un ok ar po . person web . model . Person Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġjava . net . URI Ċ import Ġjava . util .* Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ Ċ @ RestController Ċ @ RequestMapping ("/ person ") Ċ class ĠPerson Controller Ġ{ ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġrequest : ĠHttpServletRequest ĊĊĠĠĠ Ġprivate Ġvar Ġpersons : ĠMutable List < Person > Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson . Builder (). name (" Day ane "). age ( 3 2 ). uuid ( UUID . fromString (" 3 0 afc 0 da - 6 6 5 4 - 4 d 2 a - a 4 5 3 - 7 9 ee 0 0 9 aab 0 d ")). build (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson . Builder (). name (" E li ana "). age ( 5 2 ). uuid ( UUID . fromString (" 8 e 4 3 2 5 7 9 - e 5 0 7 - 4 cf 6 - a 9 2 3 - c 3 5 5 5 0 a 3 ef 0 4 ")). build (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson . Builder (). name (" Al de mi ro "). age ( 5 3 ). uuid ( UUID . fromString (" 8 e 4 3 2 5 7 9 - e 5 0 7 - 4 cf 6 - a 9 2 3 - c 3 5 5 5 0 a 3 ef 0 4 ")). build (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPerson . Builder (). name (" A dem ir "). age ( 2 7 ). uuid ( UUID . fromString (" e 0 0 af 2 ca - 2 9 7 2 - 4 e 9 e - bb 8 c - 2 e 4 0 2 9 a 6 7 6 6 7 ")). build () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ PostMapping ĊĠĠĠ Ġfun Ġsave (@ RequestBody Ġperson : ĠPerson ): ĠResponseEntity < Person > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġuuid Ġ= ĠUUID . randomUUID () ĊĠĠĠĠĠĠĠ Ġperson . uuid Ġ= Ġuuid ĊĠĠĠĠĠĠĠ Ġpersons . add ( person ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . created ( URI . create ("${ request . request URI }/ $ uuid ")). body ( person ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Put Mapping ("/ { uuid }") ĊĠĠĠ Ġfun Ġupdate (@ RequestBody Ġperson : ĠPerson , Ġ@ PathVariable (" uuid ") Ġuuid : ĠUUID ): ĠResponseEntity < Person > Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġoptional Ġ= Ġpersons . stream (). filter Ġ{ Ġit . uuid ?. equals ( uuid ) !! Ġ}. findFirst () ĊĠĠĠĠĠĠĠ Ġif Ġ(! optional . isPresent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . not Found (). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġp Ġ= Ġoptional . get () ĊĠĠĠĠĠĠĠ Ġp . name Ġ= Ġperson . name ĊĠĠĠĠĠĠĠ Ġp . age Ġ= Ġperson . age ĊĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok ( p ) ĊĠĠĠ Ġ} ĊĊ Ċ }