package Ġbr . z up . ot 5 . pix . regist ra Ċ Ċ import Ġbr . z up . ot 5 . extern o . Cont as De Client es No It au Client Ċ import Ġbr . z up . ot 5 . extern o . Created Pix Request Ċ import Ġbr . z up . ot 5 . extern o . Dados De Cliente No B anco Central Ċ import Ġbr . z up . ot 5 . shared . exception . Ch ave Pix Ex istent e Exception Ċ import Ġbr . z up . ot 5 . shared . exception . Ch ave Pix N ao En contr ada Exception Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġio . mic ronaut . validation . Validated Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . lang . IllegalStateException Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . transaction . Transactional Ċ import Ġjavax . validation . Valid Ċ Ċ @ Validated Ċ @ Singleton Ċ class ĠN ova Ch ave Pix Service ( ĊĠĠĠ Ġ@ Inject Ġval Ġch ave Pix Repository : ĠCh ave Pix Repository , ĊĠĠĠ Ġ@ Inject Ġval Ġit au Client : ĠCont as De Client es No It au Client , ĊĠĠĠ Ġ@ Inject Ġval Ġb cb Client : ĠD ados De Cliente No B anco Central Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠLogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġcada stra (@ Valid Ġnova Ch ave Ġ: ĠN ova Ch ave Pix ) Ġ: ĠCh ave Pix Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( ch ave Pix Repository . exists By Ch ave ( nova Ch ave . ch ave )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠCh ave Pix Ex istent e Exception (" Ch ave ĠP ix Ġ- Ġ${ nova Ch ave . ch ave } Ġ- ĠjÃ¡ Ġcada str ada Ġno Ġsistema ") ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġit au Client . bus ca Cont a Por Tipo ( nova Ch ave . cliente Id !! , Ġnova Ch ave . tipo Cont a !!. name ) ĊĠĠĠĠĠĠĠ Ġval Ġconta Ġ= Ġresponse . body ()?. to Model () Ġ?: Ġthrow ĠCh ave Pix N ao En contr ada Exception (" Cliente ĠnÃ£o Ġencontr ado ") ĊĊĠĠĠĠĠĠĠ Ġval Ġch ave Ġ= Ġnova Ch ave . to Model ( cont a ) ĊĊĠĠĠĠĠĠĠ Ġch ave Pix Repository . save ( ch ave ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb cb Request Ġ= ĠCreated Pix Request . of ( ch ave ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb cb Response Ġ= Ġb cb Client . c ada strar ( bcb Request ) ĊĠĠĠĠĠĠĠ ĠLogger . info (" Status ĠB CB Ġ${ bcb Response . status . toString () }") ĊĠĠĠĠĠĠĠ Ġif ( bcb Response . status Ġ!= ĠHttpStatus . CREATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Erro Ġao Ġregist rar Ġch ave ĠPIX Ġno ĠB CB ") ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġreturn Ġch ave ĊĠĠĠ Ġ} Ċ }