package Ġcom . kotlin . pat rick . br aint ree Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . kotlin . pat rick . Config Samples Helper Ċ import Ġcom . kotlin . pat rick . br aint ree . models . Checkout Response Ċ import Ġcom . kotlin . pat rick . br aint ree . models . Client Token Response Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠB ra int ree Network ( var Ġpresenter : ĠB ra int ree Presenter ) Ġ{ ĊĊĠĠĠ Ġval Ġapi Ġby Ġlazy Ġ{ ĠB ra int ree Service . create () Ġ} ĊĠĠĠ Ġvar Ġclient Token : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġfun ĠgetClient Token () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġapi . getClient Token () ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Client Token Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Client Token Response > ?, Ġresponse : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse < Client Token Response > ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull Ġ&& Ġresponse . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient Token Ġ= Ġresponse . body ()?. client Token ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Client Token Success ( client Token ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ra int ree ", Ġ" Fail : ĠBad Ġresponse \ n " Ġ+ Ġresponse ?. body (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Client Token Failure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Client Token Response > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ra int ree ", Ġ" Fail : ĠNo Ġresponse \ n " Ġ+ Ġt . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Client Token Failure () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheckout Payment ( nonce : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= Ġapi . checkout Payment ( Config Samples Helper . get JSON ("{ \" nonce \": Ġ\"$ nonce \" } ")) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Checkout Response > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Checkout Response > ?, Ġresponse : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse < Checkout Response > ?) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Ġ!= Ġnull Ġ&& Ġresponse . is Successful Ġ&& Ġresponse . body ()?. state Ġ== Ġ" Success ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ra int ree ", Ġ" Success : Ġ" Ġ+ Ġresponse . body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Checkout Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ra int ree ", Ġ" Fail : ĠBad Ġresponse \ n " Ġ+ Ġresponse ?. body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Checkout Failure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Checkout Response > ?, Ġt : ĠThrowable ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" B ra int ree ", Ġ" Fail : ĠNo Ġresponse \ n " Ġ+ Ġt . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Checkout Failure () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }