@@ -15,34 +15,37 @@ import javax.inject.Inject
15
15
* data sources
16
16
*/
17
17
class BufferooDataRepository @Inject constructor(private val factory : BufferooDataStoreFactory ,
18
- private val bufferooMapper : BufferooMapper ):
18
+ private val bufferooMapper : BufferooMapper ) :
19
19
BufferooRepository {
20
20
21
21
override fun clearBufferoos (): Completable {
22
22
return factory.retrieveCacheDataStore().clearBufferoos()
23
23
}
24
24
25
25
override fun saveBufferoos (bufferoos : List <Bufferoo >): Completable {
26
- val bufferooEntities = mutableListOf<BufferooEntity >()
27
- bufferoos.map { bufferooEntities.add(bufferooMapper.mapToEntity(it)) }
28
- return factory.retrieveCacheDataStore().saveBufferoos(bufferooEntities)
26
+ val bufferooEntities = bufferoos.map { bufferooMapper.mapToEntity(it) }
27
+ return saveBufferooEntities(bufferooEntities)
28
+ }
29
+
30
+ private fun saveBufferooEntities (bufferoos : List <BufferooEntity >): Completable {
31
+ return factory.retrieveCacheDataStore().saveBufferoos(bufferoos)
29
32
}
30
33
31
34
override fun getBufferoos (): Single <List <Bufferoo >> {
32
35
val dataStore = factory.retrieveDataStore()
33
36
return dataStore.getBufferoos()
34
- .flatMap {
35
- val bufferoos = mutableListOf<Bufferoo >()
36
- it.map { bufferoos.add(bufferooMapper.mapFromEntity(it)) }
37
- Single .just(bufferoos)
38
- }
39
37
.flatMap {
40
38
if (dataStore is BufferooRemoteDataStore ) {
41
- saveBufferoos (it).toSingle { it }
39
+ saveBufferooEntities (it).toSingle { it }
42
40
} else {
43
41
Single .just(it)
44
42
}
45
43
}
44
+ .map { list ->
45
+ list.map { listItem ->
46
+ bufferooMapper.mapFromEntity(listItem)
47
+ }
48
+ }
46
49
}
47
50
48
51
}
0 commit comments