package Ġit . ch icio . module jackson Ċ Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . PathVariable Ċ import Ġorg . springframework . web . bind . annotation . PostMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestBody Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ Ċ @ RestController Ċ class ĠProduct RestController ( ĊĠĠĠ Ġprivate Ġval Ġproduct Repository : ĠProduct Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ("/ product /{ id Product }") ĊĠĠĠ Ġfun Ġget Product For (@ PathVariable Ġid Product : ĠLong ): ĠResponseEntity < *> Ġ= ĊĠĠĠĠĠĠĠ Ġproduct Repository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get ( id Product ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠResponseEntity . not Found (). build () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠResponseEntity . ok ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ PostMapping ("/ product / add ") ĊĠĠĠ Ġfun Ġadd (@ RequestBody Ġproduct : ĠProduct ): ĠResponseEntity < *> Ġ= ĊĠĠĠĠĠĠĠ Ġproduct Repository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( product ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. fold ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠResponseEntity . internal ServerError (). build () Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĠResponseEntity . ok ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ }