package Ġru . bre ffi . story id sample . ui . auth Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġkotlinx . coroutines . launch Ċ import Ġru . bre ffi . story id . auth . common . model . Id Result Ċ import Ġru . bre ffi . story id sample . repository . App Auth Repository Ċ import Ġru . bre ffi . story id sample . value object . Resource Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAuth ViewModel Ġ@ Inject Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġapp Auth Repository : ĠApp Auth Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġvar Ġresponse Ġ= ĠMutable LiveData < Resource < Id Result >>() ĊĊĠĠĠ Ġfun Ġregister ( phone : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Result Ġ= Ġapp Auth Repository . login ( phone ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Result . success () Ġ-> Ġresponse . post Value ( Resource . success ( id Result )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Result . failure () Ġ-> Ġresponse . post Value ( Resource . error ( id Result . exception , Ġid Result )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresponse . post Value ( Resource . error ( t , Ġnull )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ