/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠSer gio ĠBel da Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġdev . ser gio bel da . tod ometer . common . data . rem oted at as ource Ċ Ċ import Ġdev . ser gio bel da . tod ometer . common . data . api . client . IT ask ApiClient Ċ import Ġdev . ser gio bel da . tod ometer . common . data . api . mapper . to Task Tag List Ċ import Ġdev . ser gio bel da . tod ometer . common . data . api . request . New Task RequestBody Ċ import Ġdev . ser gio bel da . tod ometer . common . data . api . request . Update Task State RequestBody Ċ import Ġdev . ser gio bel da . tod ometer . common . data . api . safe Api Call Ċ import Ġdev . ser gio bel da . tod ometer . common . domain . Result Ċ import Ġdev . ser gio bel da . tod ometer . common . domain . model . Tag Ċ import Ġdev . ser gio bel da . tod ometer . common . domain . model . Task Ċ import Ġdev . ser gio bel da . tod ometer . common . domain . model . Task State Ċ Ċ class ĠTask Remote DataSource ( private Ġval Ġtask ApiClient : ĠI Task ApiClient ) Ġ: ĠI Task Remote DataSource Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġget Tasks ( task List Id : ĠString ?): ĠResult < List < Task >> Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask ApiClient . get Tasks ( task List Id ) ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġit . to Task Tag List () Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġinsert Task ( ĊĠĠĠĠĠĠĠ Ġid : ĠString ?, ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġdescription : ĠString ?, ĊĠĠĠĠĠĠĠ Ġstate : ĠTask State , ĊĠĠĠĠĠĠĠ Ġtask List Id : ĠString , ĊĠĠĠĠĠĠĠ Ġtag : ĠTag ĊĠĠĠ Ġ): ĠResult < String > Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġtask ApiClient . insert Task ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNew Task RequestBody ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask List Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate Task () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġupdate Task State ( id : ĠString , Ġstate : ĠTask State ): ĠResult < String > Ġ= ĊĠĠĠĠĠĠĠ Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask ApiClient . update Task State ( id , ĠUpdate Task State RequestBody ( state . name )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdelete Task ( id : ĠString ): ĠResult < String > Ġ= Ġsafe Api Call Ġ{ ĊĠĠĠĠĠĠĠ Ġtask ApiClient . delete Task ( id ) ĊĠĠĠ Ġ} Ċ } Ċ