package Ġes . e 1 s ord o . the sis . w ti at . core web service api . controller Ċ Ċ import Ġes . e 1 s ord o . the sis . w ti at . core web service api . dto . Agent Get Dto Ċ import Ġes . e 1 s ord o . the sis . w ti at . core web service api . dto . Agent Post Dto Ċ import Ġes . e 1 s ord o . the sis . w ti at . core web service api . mapper . Dto Mapper Ċ import Ġes . e 1 s ord o . the sis . w ti at . core web service api . service . Agent Service Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . web . bind . annotation .* Ċ Ċ @ RestController Ċ @ RequestMapping ( ĊĠĠĠ Ġvalue Ġ= Ġ["/ rest / agents "], ĊĠĠĠ Ġproduces Ġ= Ġ[ MediaType . APPLICATION _ JSON _ VALUE ] Ċ ) Ċ class ĠAgent Controller ( ĊĠĠĠ Ġprivate Ġval Ġservice : ĠAgent Service , ĊĠĠĠ Ġprivate Ġval Ġdevice Service : ĠAgent Service , ĊĠĠĠ Ġprivate Ġval Ġdto Mapper : ĠD to Mapper Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ĊĠĠĠ Ġfun ĠgetAll (): ĠList < Agent Get Dto > Ġ= Ġservice . getAll (). map ( dto Mapper :: to Agent Get Dto ) ĊĊĠĠĠ Ġ@ PostMapping ĊĠĠĠ Ġfun Ġexchange (@ RequestBody Ġrequest : ĠAgent Post Dto ): ĠAgent Get Dto Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġagent Request Ġ= Ġdto Mapper . from Agent Post Dto ( request ) ĊĊĠĠĠĠĠĠĠ Ġval Ġagent Id Ġ= Ġagent Request . id ĊĠĠĠĠĠĠĠ Ġval Ġcreated Agent Ġ= Ġif Ġ( agent Id Ġ!= Ġnull Ġ&& Ġ( service . getById ( agent Id ). isPresent )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . update ( agent Request , Ġfrom Agent Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . create ( agent Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġdto Mapper . to Agent Get Dto ( created Agent ) ĊĠĠĠ Ġ} Ċ }