|
@@ -1,7 +1,8 @@
|
|
|
package com.livelike.flickersearchlibrary.service.logic
|
|
|
|
|
|
+import android.util.Log
|
|
|
import com.livelike.flickersearchlibrary.api.FlickrApi
|
|
|
-import com.livelike.flickersearchlibrary.api.model.PhotosPage
|
|
|
+import com.livelike.flickersearchlibrary.api.model.Photo
|
|
|
import com.livelike.flickersearchlibrary.service.FlickrService
|
|
|
|
|
|
/**
|
|
@@ -9,7 +10,22 @@ import com.livelike.flickersearchlibrary.service.FlickrService
|
|
|
*/
|
|
|
internal class FlickrServiceLogic(private val api: FlickrApi) : FlickrService {
|
|
|
|
|
|
- override suspend fun search(searchQuery: String): PhotosPage {
|
|
|
- return api.search(searchQuery).photos // TODO: handle and return errors
|
|
|
+ private val cachedPhotos = mutableListOf<Photo>()
|
|
|
+
|
|
|
+ override suspend fun search(searchQuery: String): List<Photo> {
|
|
|
+ val response = api.search(searchQuery)
|
|
|
+ if (response.isSuccessful) {
|
|
|
+ response.body()?.let {
|
|
|
+ cachedPhotos.clear()
|
|
|
+ cachedPhotos.addAll(it.photosPage.photos)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ Log.d(
|
|
|
+ "FlickrService",
|
|
|
+ "Flickr API responded with error: " + response.errorBody().toString()
|
|
|
+ )
|
|
|
+ }
|
|
|
+
|
|
|
+ return cachedPhotos
|
|
|
}
|
|
|
}
|