package Ġbr . com . z up academy . w iter . pix . car reg ach ave Ċ Ċ import Ġbr . com . z up academy . w iter . comp art il h ado . validator . Valid UUID Ċ import Ġbr . com . z up academy . w iter . exceptions . Ch ave Pix N ao En contr ada Exception Ċ import Ġbr . com . z up academy . w iter . extern o . bcb . B anco Central Client Ċ import Ġbr . com . z up academy . w iter . pix . Ch ave Pix Repository Ċ import Ġio . mic ronaut . core . annotation . Int rospect ed Ċ import Ġio . mic ronaut . http . HttpStatus Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . util .* Ċ import Ġjavax . validation . constraints . NotBlank Ċ import Ġjavax . validation . constraints . Size Ċ Ċ @ Int rospect ed Ċ sealed Ġclass ĠF ilt ro Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDe ve Ġret orn ar Ġch ave Ġencontr ada Ġou Ġlan Ã§ ar Ġum Ġex ce Ã§Ã£o Ġde Ġerro Ġde Ġch ave ĠnÃ£o Ġencontr ada ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġabstract Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info ĊĊĠĠĠ Ġ@ Int rospect ed ĊĠĠĠ Ġdata Ġclass ĠPor Pix E Cl ente Id ( ĊĠĠĠĠĠĠĠ Ġ@ field : ĠNot Blank Ġ@ field : ĠValid UUID Ġval Ġcliente Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ@ field : ĠNot Blank Ġ@ field : ĠValid UUID Ġval Ġpix Id : ĠString ?, ĊĠĠĠ Ġ) Ġ: ĠF ilt ro () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this . java Class ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository . findById ( UUID . fromString ( pix Id )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . pert ence Ao ( UUID . fromString ( cliente Id )) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Ch ave Pix Info :: of ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Ch ave ĠP ix ĠN Ã£o ĠEn contr ada .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCh ave Pix N ao En contr ada Exception (" Ch ave ĠP ix ĠN Ã£o ĠEn contr ada .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Int rospect ed ĊĠĠĠ Ġdata Ġclass ĠPor Ch ave (@ field : ĠNot Blank Ġ@ field : ĠSize ( max Ġ= Ġ 7 7 ) Ġval Ġch ave : ĠString ) Ġ: ĠF ilt ro () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this . java Class ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository . findBy Ch ave ( ch ave ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Ch ave Pix Info :: of ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Consult ando Ġch ave ĠP ix Ġ'$ ch ave ' Ġno ĠB anco ĠCentral Ġdo ĠBr as il Ġ( B CB )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp osta Ġ= Ġb cb Client . findBy Pix Key B cb ( ch ave ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( resp osta . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpStatus . OK Ġ-> Ġresp osta . body ()?. to Model () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠCh ave Pix N ao En contr ada Exception (" Ch ave ĠP ix ĠN Ã£o ĠEn contr ada . "). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Ch ave ĠP ix ĠN Ã£o ĠEn contr ada .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Int rospect ed ĊĠĠĠ Ġclass ĠInvalid o Ġ: ĠF ilt ro () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this . java Class ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Ch ave ĠP ix Ġinv Ã¡l ida Ġou ĠnÃ£o Ġinform ada . "). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error (" Ch ave ĠP ix Ġinv Ã¡l ida Ġou ĠnÃ£o Ġinform ada .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ