package Ġcom . sem icolon . data . remote . datasource Ċ Ċ import Ġcom . sem icolon . data . remote . api . Challenge Api Ċ import Ġcom . sem icolon . data . remote . response . challenge .* Ċ import Ġcom . sem icolon . data . util . Http Handler Ċ import Ġcom . sem icolon . domain . entity . challenge . Challenge Detail Entity Ċ import Ġcom . sem icolon . domain . entity . challenge . Challenge Entity Ċ import Ġcom . sem icolon . domain . entity . challenge . Challenge Participant Entity Ċ import Ġcom . sem icolon . domain . entity . challenge . My Challenge Entity Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRemote Challenge Date Source Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġchallenge Api : ĠChallenge Api Ċ ) Ġ: ĠRemote Challenge Date Source Ġ{ ĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Ch allenges (): ĠList < Challenge Entity > Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Handler < Challenge ListResponse >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. httpRequest Ġ{ Ġchallenge Api . get Ch allenges () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Request (). to Entity () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Challenge Detail ( challenge Id : ĠInt ): ĠChallenge Detail Entity Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Handler < Challenge Detail Response >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. httpRequest Ġ{ Ġchallenge Api . get Challenge Detail ( challenge Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Request (). to Entity () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġpost Part icip ate ( challenge Id : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Handler < Unit >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. httpRequest Ġ{ Ġchallenge Api . post Part icip ate Challenge ( challenge Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Request () ĊĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch Participants ( challenge Id : ĠInt ): ĠList < Challenge Participant Entity > Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Handler < Challenge Participant ListResponse >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. httpRequest Ġ{ Ġchallenge Api . get Challenge Participants ( challenge Id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Request (). to Entity () ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġfetch My Ch allenges (): ĠList < My Challenge Entity > Ġ= ĊĠĠĠĠĠĠĠ ĠHttp Handler < My Challenge Response >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. httpRequest Ġ{ Ġchallenge Api . get My Ch allenges () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. send Request (). to Entity () Ċ }