package Ġcom . foobar ust . deliver er . use cases . user Ċ Ċ import Ġcom . foobar ust . deliver er . di . Io Dispatcher Ċ import Ġcom . foobar ust . deliver er . repositories . Auth Repository Ċ import Ġcom . foobar ust . deliver er . repositories . UserRepository Ċ import Ġcom . foobar ust . deliver er . states . Resource Ċ import Ġcom . foobar ust . deliver er . use cases . Flow UseCase Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġke vin Ġon Ġ 1 0 / 2 / 2 0 Ċ Ġ*/ Ċ Ċ class ĠUpdate User Detail UseCase Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġauth Repository : ĠAuth Repository , ĊĠĠĠ Ġprivate Ġval Ġuser Repository : ĠUser Repository , ĊĠĠĠ Ġ@ Io Dispatcher Ġcoroutine Dispatcher : ĠCor outine Dispatcher Ċ ) Ġ: ĠFlow UseCase < Update User Detail Parameters , ĠUnit >( coroutine Dispatcher ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( parameters : ĠUpdate User Detail Parameters ): ĠFlow < Resource < Unit >> Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Token Ġ= Ġif Ġ(! auth Repository . is User Signed In ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Not Ġsigned Ġin .") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġauth Repository . getUserId Token () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġuser Repository . update User Detail ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Token Ġ= Ġid Token , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġparameters . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphone Num Ġ= Ġparameters . phone Num ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġemit ( Resource . Success ( Unit )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠUpdate User Detail Parameters ( ĊĠĠĠ Ġval Ġname : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġphone Num : ĠString ? Ġ= Ġnull Ċ )