package Ġbr . com . z up . os mar jun ior . model Ċ Ċ import Ġbr . com . z up . os mar jun ior . annotations . Valid UUID Ċ import Ġbr . com . z up . os mar jun ior . clients . B anco Central Client Ċ import Ġbr . com . z up . os mar jun ior . endpoints . d tos . Ch ave Pix Info Ċ import Ġbr . com . z up . os mar jun ior . exceptions . Ch ave Pix N ao En contr ada Exception Ċ import Ġbr . com . z up . os mar jun ior . repository . 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 Ġ{ ĊĊĠĠĠ Ġ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 Id ( ĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġ@ field : Valid UUID ĊĠĠĠĠĠĠĠ Ġval Ġcliente Id : ĠString , ĊĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġ@ field : Valid UUID ĊĠĠĠĠĠĠĠ Ġval Ġpix Id : ĠString , ĊĠĠĠ Ġ) Ġ: ĠF ilt ro () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġpix Id As Uuid () Ġ= ĠUUID . fromString ( pix Id ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository . findById ( pix Id As Uuid ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . pert ence Ao Cliente ( cliente Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Ch ave Pix Info :: of ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠCh ave Pix N ao En contr ada Exception (" Ch ave ĠP ix ĠnÃ£o Ġencontr ada .") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Int rospect ed ĊĠĠĠ Ġdata Ġclass ĠPor Ch ave ( ĊĠĠĠĠĠĠĠ Ġ@ field : Size ( min Ġ= Ġ 1 , Ġmax Ġ= Ġ 7 7 ) ĊĠĠĠĠĠĠĠ Ġ@ field : NotBlank ĊĠĠĠĠĠĠĠ Ġval Ġch ave : ĠString ĊĠĠĠ Ġ) Ġ: ĠF ilt ro () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java . simple Name ) ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfil tra ( repository : ĠCh ave Pix Repository , Ġb cb Client : ĠB anco Central Client ): ĠCh ave Pix Info Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠRe for co Ġna Ġvalid acao Ġda Ġch ave Ġque Ġpass ou Ġpelo ĠNot Blank ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ch ave . isNull Or Blank ()) Ġthrow ĠIllegalArgumentException (" Ch ave Ġdeve Ġser Ġinform ada .") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġrepository . findBy Ch ave ( ch ave ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( Ch ave Pix Info :: of ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Get Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Consult ando Ġch ave Ġ$ ch ave Ġno ĠB CB ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġb cb Client . consult a Por Ch ave ( ch ave ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( response . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpStatus . OK Ġ-> Ġresponse . body ()?. to Model () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠCh ave Pix N ao En contr ada Exception (" Ch ave Ġ$ ch ave ĠnÃ£o Ġencontr ada Ġno ĠB CB .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Int rospect ed ĊĠĠĠ Ġclass ĠInvalid o () Ġ: ĠF ilt ro () Ġ{ ĊĠĠĠĠĠĠĠ Ġ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 .") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ } Ċ