Skip to content

Instantly share code, notes, and snippets.

@Levi-Moreira
Last active February 25, 2019 19:31
package com.levimoreira.cinemabuff.movie
import com.levimoreira.cinemabuff.infrastructure.api.TmdbApi
import com.levimoreira.cinemabuff.movie.data.MovieDataSourceFactory
import com.levimoreira.cinemabuff.movie.data.MovieRepository
import com.levimoreira.cinemabuff.movie.data.MovieRepositoryImpl
import com.levimoreira.cinemabuff.movie.viewmodels.MovieViewModel
import org.koin.android.viewmodel.ext.koin.viewModel
import org.koin.dsl.module.module
val movieModule = module {
single<MovieRepository> { provideMovieRepository(get()) }
single<MovieDataSourceFactory> { provideMovieDataSourceFactory(get()) }
viewModel { provideMovieViewModel(get()) }
}
fun provideMovieRepository(tmdbApi: TmdbApi) =
MovieRepositoryImpl(tmdbApi)
fun provideMovieDataSourceFactory(repository: MovieRepository) =
MovieDataSourceFactory(repository)
fun provideMovieViewModel(dataSourceFactory: MovieDataSourceFactory) =
MovieViewModel(dataSourceFactory)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment