/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠG our av ĠK hun ger Ċ Ġ* Ċ Ġ* Ġ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 . github . g our av kh un ger . jeky l lex . ui . auth Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . github . g our av kh un ger . jeky l lex . models . user . User Model Ċ import Ġcom . github . g our av kh un ger . jeky l lex . repositories . UserRepository Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠAuth ViewModel ( ĊĠĠĠ Ġ// Ġrepository Ġwhich Ġthis Ġview Ġmodel Ġinteract s Ġwith Ġto Ġget / set Ġdata . ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠUser Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ// ĠObservable Ġlive Ġdata Ġvariables . ĊĠĠĠ Ġval ĠuserData : ĠMutable LiveData < User Model ?> Ġby Ġlazy Ġ{ ĠMutable LiveData () Ġ} ĊĠĠĠ Ġval Ġsaved : ĠMutable LiveData < Boolean > Ġby Ġlazy Ġ{ ĠMutable LiveData () Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġto Ġget Ġuser Ġdata Ġfrom ĠJekyll Ex ĠApi . ĊĠĠĠ Ġfun Ġget UserData ( id : ĠString , ĠaccessToken : ĠString ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġrepository . getUser Data ( id , ĠaccessToken ) ĊĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserData . post Value ( response . body ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠuserData . post Value ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠFunction Ġthat Ġsave Ġuser Ġdata Ġto Ġthe Ġlocal Ġdatabase . ĊĠĠĠ Ġfun Ġsave User ( user : ĠUser Model ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . save User ( user ) ĊĠĠĠĠĠĠĠ Ġsaved . post Value ( true ) ĊĠĠĠ Ġ} Ċ } Ċ