Skip to content

Instantly share code, notes, and snippets.

@sberoch
Created July 13, 2020 14:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sberoch/6d7e31dd998a559addd305340eac1478 to your computer and use it in GitHub Desktop.
Save sberoch/6d7e31dd998a559addd305340eac1478 to your computer and use it in GitHub Desktop.
class CharacterRepository @Inject constructor(
private val remoteDataSource: CharacterRemoteDataSource,
private val localDataSource: CharacterDao
) {
fun getCharacter(id: Int) = performGetOperation(
databaseQuery = { localDataSource.getCharacter(id) },
networkCall = { remoteDataSource.getCharacter(id) },
saveCallResult = { localDataSource.insert(it) }
)
fun getCharacters() = performGetOperation(
databaseQuery = { localDataSource.getAllCharacters() },
networkCall = { remoteDataSource.getCharacters() },
saveCallResult = { localDataSource.insertAll(it.results) }
)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment