Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MoviesDispatcher @Inject constructor(private val repository: MovieRepository) {
- fun dispatchAction(action: Action) = liveData {
- when (action) {
- is MoviesAction.GetMoviesAction -> {
- emit(MoviesResult.Loading)
- emit(getPopularMovies())
- }
- }
- }
- private suspend fun getPopularMovies(): MoviesResult {
- try {
- val response = repository.getPopularMovies().await()
- if (response.isSuccessful) {
- response.body()?.let { responseBody ->
- responseBody.results?.run {
- return MoviesResult.Success(this)
- }
- }
- }
- } catch (t: Throwable) {
- return MoviesResult.Failure(t.localizedMessage)
- }
- return MoviesResult.Failure("Failure to retrieve movies.")
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement