package Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . controller Ċ Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . repositories . Empresa Repository Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . repositories . Func ion ario Repository Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . request . Nova Empresa Request Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . request . Nov o Func ion ario Request Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . services . implement acao . Func ion ario Service Implements Ċ import Ġbr . com . w alter . soft . p onto im tel ig ente . p ont oint el ig ente . valid ations . Email Unique Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġorg . springframework . web . bind . Web Data Binder Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġorg . springframework . web . server . ResponseStatus Exception Ċ import Ġorg . springframework . web . util . Uri Components Builder Ċ import Ġjava . util .* Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api / func ion ario ss ") Ċ class ĠFunc ion ario Controller Ġ( ĊĠĠĠ Ġval Ġfuncion ario Service : ĠFunc ion ario Service Implements , ĊĠĠĠ Ġval Ġemail Unique : ĠEmail Unique , ĊĠĠĠ Ġval Ġempresa Repository : ĠEmp resa Repository , ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġ@ Init Binder ĊĠĠĠ Ġfun Ġinit Binder ( binder : ĠWeb Data Binder ){ ĊĠĠĠĠĠĠĠ Ġbinder . add Validators ( email Unique ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval ĠLOGGER Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġ@ PostMapping ("/ { empresa CN PJ }") ĊĠĠĠ Ġfun Ġcriar (@ PathVariable (" empresa CN PJ ") Ġempresa CN PJ : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestBody Ġnovo Func ion ario Request : ĠNov o Func ion ario Request , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder : ĠUri Components Builder ): ĠResponseEntity < Any > Ġ{ ĊĠĠĠĠĠĠĠ ĠLOGGER . info (" ----- entr ando Ġno Ġmet odo ------------ ") ĊĠĠĠĠĠĠĠ Ġval Ġposs ivel Empresa Ġ= Ġempresa Repository . findBy C np j ( empresa CN PJ ) ĊĠĠĠĠĠĠĠ ĠLOGGER . info (" ------- poss ivel ĠEmp resa ----------- Ġ$ poss ivel Empresa ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! poss ivel Empresa . isPresent ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . status ( HttpStatus . BAD _ REQUEST ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. body ( Ġ" Empresa Ġn ao Ġencontr ada ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠResponse Status Exception ( HttpStatus . BAD _ REQUEST , Ġ" Empresa Ġn ao Ġencontr ada ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnovo Func ion ario Request . set Empresa Dto ( poss ivel Empresa . get ()) ĊĊĠĠĠĠĠĠĠ Ġwith ( no vo Func ion ario Request . to Model ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfuncion ario Service . perc ist ir ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= Ġbuilder . path ("/ api / func ion arios /{ id }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build And Expand ( this . id ). to Uri () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . created ( location ). body ( no vo Func ion ario Request ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ GetMapping ĊĠĠĠ Ġfun Ġlist ar (): ĠResponseEntity < List < Nov o Func ion ario Request >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlista Func ion arios Ġ= Ġfuncion ario Service . func ion ario Repository . findAll () ĊĠĠĠĠĠĠĠ Ġval Ġlist DTO Ġ= ĠNov o Func ion ario Request . converter Dto ( lista Func ion arios ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok ( list DTO ) ĊĊĊĠĠĠ Ġ} Ċ } ĊĊĊ