package Ġcom . reach 5 . identity . sdk . core . models . responses Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġcom . github . kit tin un f . result . Result Ċ import Ġcom . github . kit tin un f . result . map Ċ import Ġcom . google . gson . annotations . SerializedName Ċ import Ġcom . reach 5 . identity . sdk . core . models . Open Id User Ċ import Ġcom . reach 5 . identity . sdk . core . models . Reach Five Error Ċ import Ġcom . reach 5 . identity . sdk . core . utils . Jwt Ċ import Ġkotlinx . android . parcel . Parcel ize Ċ Ċ @ Parcel ize Ċ data Ġclass ĠAuth Token ( ĊĠĠĠ Ġ// ĠIf Ġthe Ġ` openid ` Ġscope Ġis Ġnot Ġprovided , Ġthe Ġ` id Token ` Ġis Ġnot Ġreturned ĊĠĠĠ Ġval Ġid Token : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval ĠaccessToken : ĠString , ĊĠĠĠ Ġval Ġrefresh Token : ĠString ?, ĊĠĠĠ Ġval Ġtoken Type : ĠString ?, ĊĠĠĠ Ġval Ġexpires In : ĠInt ?, ĊĠĠĠ Ġ// ĠThe Ġ` user ` Ġfield Ġis Ġoptional Ġbecause Ġif Ġthe Ġ` openid ` Ġscope Ġis Ġnot Ġprovided , Ġthe Ġ` user ` Ġis Ġnot Ġretrieved ĊĠĠĠ Ġval Ġuser : ĠOpen Id User ? Ġ= Ġnull Ċ ) Ġ: ĠParcel able Ċ Ċ @ Parcel ize Ċ data Ġclass ĠAuth Token Response ( ĊĠĠĠ Ġ@ SerializedName (" id _ token ") ĊĠĠĠ Ġval Ġid Token : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" access _ token ") ĊĠĠĠ Ġval ĠaccessToken : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" refresh _ token ") ĊĠĠĠ Ġval Ġrefresh Token : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" token _ type ") ĊĠĠĠ Ġval Ġtoken Type : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" expires _ in ") ĊĠĠĠ Ġval Ġexpires In : ĠInt ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" error ") ĊĠĠĠ Ġval Ġerror : ĠString ? Ġ= Ġnull , ĊĊĠĠĠ Ġ@ SerializedName (" error _ description ") ĊĠĠĠ Ġval Ġerror Description : ĠString ? Ġ= Ġnull Ċ ) Ġ: ĠParcel able Ġ{ ĊĠĠĠ Ġfun Ġto AuthToken (): ĠResult < AuthToken , ĠRe ach Five Error > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( accessToken Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Token Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetUser (). map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Token ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Token Ġ= Ġid Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= ĠaccessToken , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġrefresh Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġtoken Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Ġ= Ġexpires In , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . of Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAuth Token ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= ĠaccessToken , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Token Ġ= Ġrefresh Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Type Ġ= Ġtoken Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpires In Ġ= Ġexpires In ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . error ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRe ach Five Error . from ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" No Ġaccess _ token Ġreturned " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetUser (): ĠResult < Open Id User , ĠRe ach Five Error > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠResult . of Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( id Token Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJwt . decode ( id Token , ĠOpen Id User :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRe ach Five Error . from ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Invalid Ġid _ token " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ