package Ġorg . w ats i . enrollment . device . repositories Ċ Ċ import Ġio . reactivex . Comp letable Ċ import Ġio . reactivex . Single Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . RequestBody Ċ import Ġorg . th reet en . bp . Clock Ċ import Ġorg . w ats i . enrollment . device . api . Coverage Api Ċ import Ġorg . w ats i . enrollment . device . db . da os . Photo Dao Ċ import Ġorg . w ats i . enrollment . device . db . models . Photo Model Ċ import Ġorg . w ats i . enrollment . device . managers . Session Manager Ċ import Ġorg . w ats i . enrollment . domain . entities . Delta Ċ import Ġorg . w ats i . enrollment . domain . entities . Photo Ċ import Ġorg . w ats i . enrollment . domain . repositories . Photo Repository Ċ import Ġjava . util . UUID Ċ Ċ class ĠPhoto Repository Impl Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġphoto Dao : ĠPhoto Dao , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapi : ĠCoverage Api , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġsession Manager : ĠSession Manager , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġclock : ĠClock Ċ ) Ġ: ĠPhoto Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget ( id : ĠUUID ): ĠSingle < Photo > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġphoto Dao . get ( id ). map Ġ{ Ġit . to Photo () Ġ}. subscribe On ( Schedulers . io ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinsert ( photo : ĠPhoto ): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠComp letable . from Action Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġphoto Dao . insert ( Photo Model . from Photo ( photo , Ġclock )) ĊĠĠĠĠĠĠĠ Ġ}. subscribe On ( Schedulers . io ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsync ( delt as : ĠList < Delta >): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsession Manager . current Authentication Token ()?. let Ġ{ Ġauth Token Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmember Id Ġ= Ġdelt as . first (). model Id ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthe Ġmodel Id Ġin Ġa Ġphoto Ġdelta Ġcorresponds Ġto Ġthe Ġmember ĠID Ġand Ġnot Ġthe Ġphoto ĠID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġto Ġmake Ġthis Ġquerying Ġand Ġformatting Ġof Ġthe Ġsync Ġrequest Ġsimpler ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġphoto Dao . get Member With Raw Photo ( member Id ). flatMap Ġ{ Ġmember With Raw Photo Model Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmember With Raw Photo Ġ= Ġmember With Raw Photo Model . to Member With Raw Photo () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠRequest Body . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMediaType . parse (" image / jpg "), Ġmember With Raw Photo . photo . bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapi . patch Photo ( auth Token . getHeader String (), Ġmember Id , Ġrequest Body ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Comp letable () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠComp letable . error ( Exception (" Current Ġtoken Ġis Ġnull Ġwhile Ġcalling ĠPhoto Repository Impl . sync ")) ĊĠĠĠ Ġ} Ċ } Ċ