package Ġgr . ex m . ag ro xm . ui . signup Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġgr . ex m . ag ro xm . data . Resource Ċ import Ġgr . ex m . ag ro xm . data . Role Ċ import Ġgr . ex m . ag ro xm . data . repository . Auth Repository Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . k oin . core . component . K oin Component Ċ import Ġorg . k oin . core . component . inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠSign up ViewModel Ġ: ĠViewModel (), ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġrepository : ĠAuth Repository Ġby Ġinject () ĊĊĠĠĠ Ġprivate Ġval Ġis Signed Up Ġ= ĠMutable LiveData < Resource < Unit >>() ĊĠĠĠ Ġfun Ġis Signed Up () Ġ= Ġis Signed Up ĊĊĠĠĠ Ġfun Ġsignup ( ĊĠĠĠĠĠĠĠ Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġpassword : ĠString , ĊĠĠĠĠĠĠĠ Ġrole : ĠRole , ĊĠĠĠĠĠĠĠ ĠfirstName : ĠString ?, ĊĠĠĠĠĠĠĠ ĠlastName : ĠString ?, ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Signed Up . post Value ( Resource . loading ()) ĊĠĠĠĠĠĠĠ ĠCor outine Scope ( Dispatch ers . IO ). launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . signup ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġusername , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrole Ġ= Ġrole , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= ĠfirstName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= ĠlastName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). map Left Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( it , Ġ" Login ĠError ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Signed Up . post Value ( Resource . error (" Signup ĠError . Ġ${ it . message } ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Signed Up . post Value ( Resource . success ( Unit )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }