package Ġcom . kar h oo . sdk . api . service . payments Ċ Ċ import Ġcom . kar h oo . sdk . api . Kar h oo Error Ċ import Ġcom . kar h oo . sdk . api . datastore . credentials . Credentials Manager Ċ import Ġcom . kar h oo . sdk . api . network . client . AP IT emplate Ċ import Ġcom . kar h oo . sdk . api . network . response . Resource Ċ import Ġcom . kar h oo . sdk . api . service . common . Base Call Interactor Ċ import Ġkotlinx . coroutines . Comp letable Deferred Ċ import Ġkotlinx . coroutines . Deferred Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġkotlinx . coroutines . async Ċ import Ġorg . json . JSONObject Ċ import Ġjavax . inject . Inject Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ internal Ġclass ĠAd yen Payments Interactor Ġ@ Inject Ġconstructor ( private Ġval Ġcredentials Manager : ĠCredentials Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi Template : ĠAP IT emplate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext : ĠCor outine Context Ġ= ĠDispatch ers . Main ) ĊĠĠĠ Ġ: ĠBase Call Interactor < JSONObject >( true , Ġcredentials Manager , Ġapi Template , Ġcontext ) Ġ{ ĊĊĠĠĠ Ġvar Ġad yen Payments Request : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Request (): ĠDeferred < Resource < JSONObject >> Ġ{ ĊĠĠĠĠĠĠĠ Ġad yen Payments Request ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠGlobal Scope . async Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ async Ġget Ad yen Payments ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠComp letable Deferred ( Resource . Failure ( error Ġ= ĠKar h oo Error . Internal SDK Error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġget Ad yen Payments ( ady en Payments Request : ĠString ): ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResource < JSONObject > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( val Ġresult Ġ= Ġapi Template . get Ad yen Payments ( ady en Payments Request ). await ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresult . data . string () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Body . isNull Or Blank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Failure ( error Ġ= ĠKar h oo Error . Internal SDK Error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠJSONObject ( response Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Success ( data Ġ= Ġresponse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠResource . Failure Ġ-> ĠResource . Failure ( error Ġ= Ġresult . error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ