Skip to content

Instantly share code, notes, and snippets.

@MkhytarMkhoian
Created May 7, 2024 11:58
Show Gist options
  • Save MkhytarMkhoian/7ffd46f3eda5503a0a11869aa1fac077 to your computer and use it in GitHub Desktop.
Save MkhytarMkhoian/7ffd46f3eda5503a0a11869aa1fac077 to your computer and use it in GitHub Desktop.
class FaresDataRepository(
private val faresLocalDataSource: FaresLocalDataSource,
private val faresRemoteDataSource: FaresRemoteDataSource,
private val backgroundDispatcher: CoroutineDispatcher = Dispatchers.IO,
) : FaresRepository {
override suspend fun getFares(ryderId: String): List<Fare> = withContext(backgroundDispatcher) {
if (faresLocalDataSource.isValid()) {
faresLocalDataSource.getData(ryderId).asDomain()
} else {
val fares = faresRemoteDataSource.getData(ryderId)
faresLocalDataSource.setFares(fares)
fares.asDomain()
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment