package Ġbr . com . z up academy . thi ago . pix . service Ċ Ċ import Ġbr . com . z up academy . thi ago . integration . bcb . B anco Central Client Ċ import Ġbr . com . z up academy . thi ago . integration . bcb . Create Pix Key Request Ċ import Ġbr . com . z up academy . thi ago . pix . exception . Cliente N ao En contr ado Exception Ċ import Ġbr . com . z up academy . thi ago . pix . model . Ch ave Pix Ċ import Ġbr . com . z up academy . thi ago . pix . regist ra . Nova Ch ave Request Ċ import Ġbr . com . z up academy . thi ago . pix . repository . Ch ave Pix Repository Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġjak arta . inject . Inject Ċ import Ġjak arta . inject . Singleton Ċ import Ġjavax . transaction . Transactional Ċ import Ġjavax . validation . Constraint Violation Exception Ċ import Ġjavax . validation . Valid Ċ Ċ @ Singleton Ċ open Ġclass ĠRegist ra Ch ave Service ( ĊĠĠĠ Ġ@ Inject Ġval Ġit au Client : ĠCont as De Client es No It au Client , ĊĠĠĠ Ġ@ Inject Ġval Ġb cb Client : ĠB anco Central Client , ĊĠĠĠ Ġ@ Inject Ġval Ġrepository : ĠCh ave Pix Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġopen Ġfun Ġregist ra (@ Valid Ġnova Ch ave Request : ĠN ova Ch ave Request ): ĠCh ave Pix Ġ{ ĊĊĊĠĠĠĠĠĠĠ Ġ// ĠBus ca Ġdados Ġda Ġconta Ġno ĠE RP Ġdo ĠI TA U ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġit au Client . bus ca Cont a Por Tipo ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnova Ch ave Request . cliente Id !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnova Ch ave Request . tipo Cont a !!. name ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġconta Ġ= Ġresponse ?. to Model () Ġ?: Ġthrow ĠCliente N ao En contr ado Exception (" Cliente Ġcom Ġid Ġ${ nova Ch ave Request . cliente Id } Ġe Ġ${ nova Ch ave Request . tipo Cont a } ĠnÃ£o Ġencontr ado ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠGr ava Ġch ave Ġno Ġbanco Ġde Ġdados ĊĠĠĠĠĠĠĠ Ġval Ġch ave Ġ= Ġnova Ch ave Request . to Model ( cont a ) ĊĠĠĠĠĠĠĠ Ġif (! ch ave . valid a ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Ch ave Ġinv Ã¡l ida ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrepository . save ( ch ave ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRegist ra Ġno ĠB CB ĊĠĠĠĠĠĠĠ Ġval Ġb cb Request Ġ= ĠCreate Pix Key Request . of ( ch ave ) ĊĊĠĠĠĠĠĠĠ Ġval Ġb cb Response Ġ= Ġb cb Client . create ( bcb Request ) ĊĊĠĠĠĠĠĠĠ Ġif ( bcb Response . status Ġ!= ĠHttpStatus . CREATED ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Erro Ġao Ġregist rar Ġch ave ĠP ix Ġno ĠB anco ĠCentral ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġch ave . at ual iza ( bcb Response . body () !!. key ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġch ave ĊĠĠĠ Ġ} Ċ }