@@ -5,9 +5,10 @@ import arrow.core.toOption
5
5
import es.ffgiraldez.comicsearch.comics.data.ComicLocalDataSource
6
6
import es.ffgiraldez.comicsearch.comics.data.ComicRemoteDataSource
7
7
import es.ffgiraldez.comicsearch.comics.data.network.ComicVineApi
8
+ import es.ffgiraldez.comicsearch.comics.data.storage.ComicDatabase
8
9
import es.ffgiraldez.comicsearch.comics.domain.Query
9
10
import es.ffgiraldez.comicsearch.comics.domain.Volume
10
- import es.ffgiraldez.comicsearch.comics.data.storage.ComicDatabase
11
+ import es.ffgiraldez.comicsearch.platform.ComicSchedulers
11
12
import io.reactivex.Completable
12
13
import io.reactivex.Flowable
13
14
import io.reactivex.Single
@@ -17,7 +18,7 @@ class SearchRemoteDataSource(
17
18
private val api : ComicVineApi
18
19
) : ComicRemoteDataSource<Volume> {
19
20
override fun findByTerm (searchTerm : String ): Single <List <Volume >> = api.fetchVolumes(searchTerm)
20
- .subscribeOn(Schedulers .io() )
21
+ .subscribeOn(ComicSchedulers .network )
21
22
.map { response ->
22
23
response.results
23
24
.filter { it.apiPublisher != null && it.apiImage != null }
@@ -33,15 +34,17 @@ class SearchLocalDataSource(
33
34
override fun insert (query : String , titles : List <Volume >): Completable =
34
35
Completable .fromAction {
35
36
database.volumeDao().insert(query, titles)
36
- }.subscribeOn(Schedulers .io() )
37
+ }.subscribeOn(ComicSchedulers .database )
37
38
38
39
override fun findQueryByTerm (searchTerm : String ): Flowable <Option <Query >> = database.volumeDao()
39
40
.findQueryByTerm(searchTerm)
41
+ .subscribeOn(ComicSchedulers .database)
40
42
.flatMap { Flowable .just(it.firstOrNull().toOption()) }
41
43
.map { search -> search.map { Query (it.queryId, it.searchTerm) } }
42
44
43
45
override fun findByQuery (query : Query ): Flowable <List <Volume >> = database.volumeDao()
44
46
.findVolumeByQuery(query.identifier)
47
+ .subscribeOn(ComicSchedulers .database)
45
48
.subscribeOn(Schedulers .io())
46
49
.map { volumeList -> volumeList.map { Volume (it.title, it.author, it.url) } }
47
50
}
0 commit comments