package Ġio . piv otal . module sk t . app . user Ċ Ċ import Ġio . piv otal . module sk t . user . Create User UseCase Ċ import Ġio . piv otal . module sk t . user . Find All Users UseCase Ċ import Ġio . piv otal . module sk t . user . Un pers isted User Ċ import Ġio . piv otal . module sk t . user . User Ċ import Ġorg . springframework . web . bind . annotation .* Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api / users ") Ċ internal Ġclass ĠUsers Controller ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠfindAll Users UseCase : ĠFind All Users UseCase , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcreate User UseCase : ĠCreate User UseCase Ċ ) Ġ{ ĊĠĠĠ Ġ@ GetMapping ĊĠĠĠ Ġfun Ġindex (): ĠUser ListResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġusers Ġ= ĠfindAll Users UseCase . execute () ĊĠĠĠĠĠĠĠ Ġreturn Ġuser ListResponse ( users ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PostMapping ĊĠĠĠ Ġfun Ġcreate (@ RequestParam Ġusername : ĠString ): ĠUser Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġun pers isted User Ġ= ĠUn pers isted User ( username ) ĊĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġcreate User UseCase . execute ( un pers isted User ) ĊĠĠĠĠĠĠĠ Ġreturn Ġuser Response ( user ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġuser Response ( user : ĠUser ): ĠUser Response Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser Response ( user . id , Ġuser . username ) ĊĊĠĠĠ Ġprivate Ġfun Ġuser ListResponse ( users : ĠList < User >) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUser ListResponse ( users . map Ġ{ Ġuser Response ( it ) Ġ}) Ċ } Ċ