package Ġcom . z up . br . orange . grpc . pix . consult . service Ċ Ċ import Ġcom . z up . br . orange . Account Type Ċ import Ġcom . z up . br . orange . Pix Key Consult Grpc Response Ċ import Ġcom . z up . br . orange . client . bcb . B CB Client Ċ import Ġcom . z up . br . orange . client . bcb . response . Consult Pix ClientResponse Ċ import Ġcom . z up . br . orange . client . it au . It au Client Ċ import Ġcom . z up . br . orange . client . it au . response . Consult Account Response Ċ import Ġcom . z up . br . orange . entity . pix . Pix Ċ import Ġcom . z up . br . orange . entity . pix . request . Consult Pix Id Request Ċ import Ġcom . z up . br . orange . entity . pix . request . Consult Pix Request Ċ import Ġcom . z up . br . orange . exceptions . Internal ErrorException Ċ import Ġcom . z up . br . orange . exceptions . NotFoundException Ċ import Ġcom . z up . br . orange . grpc . pix . consult . utils . Inst itution s Ċ import Ġcom . z up . br . orange . repository . Pix Repository Ċ import Ġio . mic ronaut . validation . Validated Ċ import Ġjavax . inject . Singleton Ċ import Ġjavax . transaction . Transactional Ċ import Ġjavax . validation . Valid Ċ Ċ @ Validated Ċ @ Singleton Ċ class ĠP ix Key Consult Grpc Service ( ĊĠĠĠ Ġvar Ġpix Repository : ĠP ix Repository , ĊĠĠĠ Ġvar Ġit au Client : ĠI tau Client , ĊĠĠĠ Ġvar Ġb cb Client : ĠB CB Client Ċ ) Ġ{ ĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġconsult Pix Id (@ Valid Ġconsult Pix Id Request : ĠConsult Pix Id Request ) Ġ: ĠP ix Key Consult Grpc Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptional Pix Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpix Repository . findById And ClientId ( consult Pix Id Request . pix Id . to Long (), Ġconsult Pix Id Request . clientId ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( optional Pix . isEmpty ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNotFound Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pix Ġwith Ġid : Ġ${ consult Pix Id Request . pix Id } Ġand ĠclientId : Ġ${ consult Pix Id Request . clientId } Ġnot Ġfound " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġconsult Info ( optional Pix . get ()) ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġfun Ġconsult Pix Value (@ Valid Ġconsult Pix Request : ĠConsult Pix Request ) Ġ: ĠP ix Key Consult Grpc Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoptional Pix Ġ= Ġpix Repository . findBy Pix Value ( consult Pix Request . pix Value ) ĊĠĠĠĠĠĠĠ Ġif Ġ( optional Pix . isPresent ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġconsult Info ( optional Pix . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġb cb Response Ġ= Ġb cb Client . consult Pix ( consult Pix Request . pix Value ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNotFound Exception (" Pix Ġwith Ġvalue Ġ${ consult Pix Request . pix Value }, Ġnot Ġfound ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuild Response ( bcb Response ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconsult Info ( pix : ĠP ix ): ĠP ix Key Consult Grpc Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Response Ġ= Ġit au Client . consult Account ( pix . clientId , Ġpix . account Type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInternal ErrorException (" An Ġunexpected Ġerror Ġoccurred ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuild Response ( pix , Ġaccount Response ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Response ( pix : ĠP ix , Ġaccount Response : ĠConsult Account Response ): ĠP ix Key Consult Grpc Response { ĊĠĠĠĠĠĠĠ Ġval Ġaccount Builder Ġ= ĠP ix Key Consult Grpc Response . newBuilder (). pix Builder . account Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( pix . account Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Inst itution ( account Response . inst itu icao . nome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set I spb ( pix . is pb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set T it ular ( account Response . tit ular . nome ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set C pf ( account Response . tit ular . cpf ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ag ency ( account Response . ag encia ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Number ( account Response . numero ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġpix Builder Ġ= ĠP ix Key Consult Grpc Response . newBuilder (). pix Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( pix . pix Type . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Key ( pix . pix Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set CreatedAt ( pix . create At . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account ( account Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠP ix Key Consult Grpc Response . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set ClientId ( pix . clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix Id ( pix . id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix ( pix Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbuild Response ( consult Response : ĠConsult Pix ClientResponse ): ĠP ix Key Consult Grpc Response { ĊĠĠĠĠĠĠĠ Ġval Ġaccount Builder Ġ= ĠP ix Key Consult Grpc Response . newBuilder (). pix Builder . account Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( when ( consult Response . bank Account . account Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" C ACC " Ġ-> ĠAccount Type . CONT A _ COR REN TE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SV GS " Ġ-> ĠAccount Type . CONT A _ PO UP AN CA ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠAccount Type . UNKNOWN _ ACCOUNT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Inst itution ( Inst itution s . name ( consult Response . bank Account . participant )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set I spb ( consult Response . bank Account . participant ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set T it ular ( consult Response . owner . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set C pf ( consult Response . owner . tax Id Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Ag ency ( consult Response . bank Account . branch ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account Number ( consult Response . bank Account . account Number ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġpix Builder Ġ= ĠP ix Key Consult Grpc Response . newBuilder (). pix Builder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setType ( consult Response . key Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Key ( consult Response . key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set CreatedAt ( consult Response . createdAt . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Account ( account Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠP ix Key Consult Grpc Response . newBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Pix ( pix Builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} Ċ Ċ }