package Ġorg . tok end . template . features . ky c . storage Ċ Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . rx kotlin . to Maybe Ċ import Ġorg . json . JSONObject Ċ import Ġorg . tok end . rx . extensions . to Single Ċ import Ġorg . tok end . sdk . api . Token D Api Ċ import Ġorg . tok end . sdk . api . base . params . Paging Order Ċ import Ġorg . tok end . sdk . api . base . params . Paging Params V 2 Ċ import Ġorg . tok end . sdk . api . generated . resources . Change Role Request Resource Ċ import Ġorg . tok end . sdk . api . generated . resources . Review able Request Resource Ċ import Ġorg . tok end . sdk . api . requests . model . base . Request State Ċ import Ġorg . tok end . sdk . api . v 3 . requests . params . Change Role Request Page Params Ċ import Ġorg . tok end . sdk . api . v 3 . requests . params . Request Params V 3 Ċ import Ġorg . tok end . sdk . utils . extent ions . get Typed Request Details Ċ import Ġorg . tok end . template . data . repository . Blob s Repository Ċ import Ġorg . tok end . template . data . repository . base . Single Item Repository Ċ import Ġorg . tok end . template . di . providers . Api Provider Ċ import Ġorg . tok end . template . di . providers . Wallet Info Provider Ċ import Ġorg . tok end . template . features . ky c . model . K yc Form Ċ import Ġorg . tok end . template . features . ky c . model . K yc Request State Ċ Ċ /** Ċ Ġ* ĠHold s Ġuser 's ĠK Y C Ġrequest Ġstate Ċ Ġ*/ Ċ class ĠK yc Request State Repository ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi Provider : ĠApi Provider , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwallet Info Provider : ĠWallet Info Provider , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġblobs Repository : ĠBlob s Repository Ċ ) Ġ: ĠSingle Item Repository < K yc Request State >() Ġ{ ĊĠĠĠ Ġprivate Ġclass ĠNo Request Found Exception Ġ: ĠException () ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠK yc Request Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate : ĠRequest State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreject Reason : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblob Id : ĠString ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem (): ĠMaybe < K yc Request State > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsigned Api Ġ= Ġapi Provider . get Signed Api () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠMaybe . error ( IllegalStateException (" No Ġsigned ĠAPI Ġinstance Ġfound ")) ĊĠĠĠĠĠĠĠ Ġval ĠaccountId Ġ= Ġwallet Info Provider . get Wallet Info ()?. accountId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĠMaybe . error ( IllegalStateException (" No Ġwallet Ġinfo Ġfound ")) ĊĊĠĠĠĠĠĠĠ Ġvar ĠrequestId : ĠLong Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġreturn ĠgetLast K yc Request ( signed Api , ĠaccountId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. switch If Empty ( Single . error ( No Request Found Exception ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Success Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠrequestId Ġ= Ġrequest . id . to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġrequest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget K yc Request Attributes ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠInvalid K yc DataException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġ( state , Ġreject Reason , Ġblob Id ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload K yc Form From Blob ( blob Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġk yc Form Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTrip le ( state , Ġreject Reason , Ġk yc Form ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map < K yc Request State > Ġ{ Ġ( state , Ġreject Reason , Ġk yc Form ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest State . RE JECT ED Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK yc Request State . Submitted . Rejected ( ky c Form , ĠrequestId , Ġreject Reason ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest State . APPRO VED Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK yc Request State . Submitted . Approved ( ky c Form , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK yc Request State . Submitted . Pending ( ky c Form , ĠrequestId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. onError Resume Next Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( error Ġis ĠNo Request Found Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . just ( K yc Request State . Empty ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSingle . error ( error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Maybe () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetLast K yc Request ( signed Api : ĠToken D Api , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccountId : ĠString ): ĠMaybe < Review able Request Resource > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsigned Api ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. v 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. requests ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Change Role Requests ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChange Role Request Page Params ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest or Ġ= ĠaccountId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġincludes Ġ= ĠlistOf ( Request Params V 3 . Includes . REQUEST _ DETAILS ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpaging Params Ġ= ĠP aging Params V 2 ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorder Ġ= ĠP aging Order . DESC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Single () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Maybe Ġ{ Ġpage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage . items . first OrNull (). to Maybe () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget K yc Request Attributes ( request : ĠReviewable Request Resource ): ĠK yc Request Attributes ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠRequest State . from I ( request . state I ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblob Id Ġ= Ġrequest . get Typed Request Details < Change Role Request Resource >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. creator Details ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get (" blob _ id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . as Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreject Reason Ġ= Ġrequest . reject Reason Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠK yc Request Attributes ( state , Ġreject Reason , Ġblob Id ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload K yc Form From Blob ( blob Id : ĠString ?): ĠSingle < K yc Form > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( blob Id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSingle . just ( K yc Form . Empty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġblobs Repository ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getById ( blob Id , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġblob Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Json Ġ= ĠJSONObject ( blob . value String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis General Ġ= Ġvalue Json . has ( K yc Form . General . FIRST _ NAME _ KEY ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Cor por ate Ġ= Ġvalue Json . has ( K yc Form . Cor por ate . COMP ANY _ KEY ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis General Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblob . getValue ( K yc Form . General :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Cor por ate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblob . getValue ( K yc Form . Cor por ate :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Unknown ĠK Y C Ġform Ġtype ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK yc Form . Empty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }