/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ ĠPay May a ĠPhil ipp ines , ĠInc . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ġof Ġthis Ġsoftware Ġand Ċ Ġ* Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ċ Ġ* Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ċ Ġ* Ġsublicense , Ġand / or Ġsell Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ġcopies Ġor Ċ Ġ* Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR ĠIMPLIED ĠINCLUDING ĠBUT Ċ Ġ* ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND Ċ Ġ* ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , Ċ Ġ* ĠDAMAGES ĠOR ĠOTHER ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . pay m aya . sdk . android . vault . internal Ċ Ċ import Ġcom . pay m aya . sdk . android . common . Pay May a Environment Ċ import Ġcom . pay m aya . sdk . android . common . internal . Pay May a Gateway Base Repository Ċ import Ġcom . pay m aya . sdk . android . vault . internal . models . Token ize Card Request Ċ import Ġkotlinx . serialization . json . Json Ċ import Ġokhttp 3 . Ok HttpClient Ċ import Ġokhttp 3 . RequestBody . Companion . to RequestBody Ċ import Ġokhttp 3 . Response Ċ import Ġru . g ild or . coroutines . okhttp . await Ċ Ċ internal Ġclass ĠVault Repository ( ĊĠĠĠ Ġenvironment : ĠPay May a Environment , ĊĠĠĠ Ġprivate Ġval Ġclient PublicKey : ĠString , ĊĠĠĠ Ġjson : ĠJson , ĊĠĠĠ ĠhttpClient : ĠOk HttpClient Ċ ) Ġ: ĠPay May a Gateway Base Repository ( json , ĠhttpClient ) Ġ{ ĊĊĠĠĠ Ġval ĠbaseUrl Ġ= Ġwhen Ġ( environment ) Ġ{ ĊĠĠĠĠĠĠĠ ĠPay May a Environment . PRO DU CTION Ġ-> Ġ"$ BASE _ URL _ PRO DU CTION $ BASE _ URL _ SUFFIX " ĊĠĠĠĠĠĠĠ ĠPay May a Environment . SAN DB OX Ġ-> Ġ"$ BASE _ URL _ SAN DB OX $ BASE _ URL _ SUFFIX " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġtokenize Card ( request Model : ĠToken ize Card Request ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbody String Ġ= Ġjson . stringify ( Token ize Card Request . serializer (), Ġrequest Model ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget Base RequestBuilder ( client PublicKey , Ġbody String . length ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( baseUrl Ġ+ ĠCREATE _ TOKEN _ ENDPOINT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( body String . to RequestBody ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . new Call ( request ). await () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġstatus ( id : ĠString ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġget Base RequestBuilder ( client PublicKey , Ġlength Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ("$ baseUrl $ PAYMENT S _ ENDPOINT /$ id /$ STATUS _ ENDPOINT ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠhttpClient . new Call ( request ). await () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBASE _ URL _ PRO DU CTION Ġ= Ġ" https :// pg . pay m aya . com " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBASE _ URL _ SAN DB OX Ġ= Ġ" https :// pg - sandbox . pay m aya . com " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠBASE _ URL _ SUFFIX Ġ= Ġ"/ payments / v 1 /" ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP AY MENTS _ ENDPOINT Ġ= Ġ" payments " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTATUS _ ENDPOINT Ġ= Ġ" status " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCREATE _ TOKEN _ ENDPOINT Ġ= Ġ" payment - tokens " ĊĠĠĠ Ġ} Ċ }