/* Ċ Ġ* Ġ ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* Ġ ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠWeb tre kk ĠGmbH Ċ Ġ* Ċ Ġ* Ġ Ġ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 ĠNON ĠIN FR INGEMENT . Ġ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 Ġweb tre kk . android . sdk . domain . internal Ċ Ċ import Ġokhttp 3 . Request Ċ import Ġweb tre kk . android . sdk . api . datasource . Sync Post Requests DataSource Ċ import Ġweb tre kk . android . sdk . data . entity . Data Track Ċ import Ġweb tre kk . android . sdk . data . entity . Track Request Ċ import Ġweb tre kk . android . sdk . data . repository . Track Request Repository Ċ import Ġweb tre kk . android . sdk . domain . Internal Interactor Ċ Ċ /** Ċ Ġ* ĠExecute Ġthe Ġtrack Ġrequests ĠURLs Ġfor Ġthe Ġbatch . Ċ Ġ*/ Ċ internal Ġclass ĠExecute Post Request ( ĊĠĠĠ Ġprivate Ġval Ġtrack Request Repository : ĠTrack Request Repository , ĊĠĠĠ Ġprivate Ġval Ġsync Requests DataSource : ĠSync Post Requests DataSource < List < Data Track >> Ċ ) Ġ: ĠInternal Interactor < Execute Post Request . Params , ĠList < Data Track >> Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġoperator Ġfun Ġinvoke ( invoke Params : ĠParams ): ĠResult < List < Data Track >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( invoke Params ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSend Ġthe Ġrequest Ġand Ġupdate Ġits Ġstate Ġif Ġthe Ġrequest Ġsent Ġsuccessfully Ġor Ġfailed . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync Requests DataSource . send Request ( request , Ġdata Tracks ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Success Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . forEach Ġ{ Ġdata Track Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Track . track Request . request State Ġ= ĠTrack Request . Request State . DONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrack Request Repository . update Track Requests ( data Track . track Request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Tracks . forEach Ġ{ Ġdata Track Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Track . track Request . request State Ġ= ĠTrack Request . Request State . FAILED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrack Request Repository . update Track Requests ( data Track . track Request ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠA Ġdata Ġclass Ġencaps ulating Ġthe Ġspecific Ġparams Ġrelated Ġto Ġthis Ġuse Ġcase . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ request ] Ġthe Ġrequest Ġthat Ġwill Ġbe Ġsent . ĊĠĠĠĠ Ġ* Ġ@ param Ġ[ data Track ] Ġthe Ġdata Ġtrack Ġwhich Ġwill Ġbe Ġreturned Ġwith Ġthe Ġnew Ġstate Ġafter Ġ[ request ] Ġis Ġexecuted Ġsuccessfully . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠParams ( val Ġrequest : ĠRequest , Ġval Ġdata Tracks : ĠList < Data Track >) Ċ } Ċ