diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DataService.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DataService.kt index cac359629..7a127ba1a 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DataService.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/DataService.kt @@ -1,9 +1,9 @@ package app.omnivore.omnivore import android.content.Context -import android.util.Log import androidx.room.Room import app.omnivore.omnivore.networking.Networker +import app.omnivore.omnivore.networking.savedItem import app.omnivore.omnivore.networking.savedItemUpdates import app.omnivore.omnivore.persistence.AppDatabase import javax.inject.Inject @@ -18,30 +18,38 @@ class DataService @Inject constructor( ).build() } -suspend fun DataService.sync(since: String, cursor: String?, limit: Int = 15): SavedItemSyncMarker { - val syncResult = networker.savedItemUpdates(cursor = cursor, limit = limit, since = since) ?: return SavedItemSyncMarker.errorResult +suspend fun DataService.sync(since: String, cursor: String?, limit: Int = 15): SavedItemSyncResult { + val syncResult = networker.savedItemUpdates(cursor = cursor, limit = limit, since = since) ?: return SavedItemSyncResult.errorResult db.savedItemDao().insertAll(syncResult.items) - return SavedItemSyncMarker( + return SavedItemSyncResult( hasError = false, hasMoreItems = syncResult.hasMoreItems, cursor = syncResult.cursor, - count = syncResult.items.size + count = syncResult.items.size, + savedItemSlugs = syncResult.items.map { it.id } ) } +suspend fun DataService.syncSavedItemContent(slug: String) { + val syncResult = networker.savedItem(slug) + +// syncResult.item +} + suspend fun DataService.syncOfflineItemsWithServerIfNeeded() { // TODO: implement this } -data class SavedItemSyncMarker( +data class SavedItemSyncResult( val hasError: Boolean, val hasMoreItems: Boolean, val count: Int, + val savedItemSlugs: List, val cursor: String? ) { companion object { - val errorResult = SavedItemSyncMarker(hasError = true, hasMoreItems = true, cursor = null, count = 0) + val errorResult = SavedItemSyncResult(hasError = true, hasMoreItems = true, cursor = null, count = 0, savedItemSlugs = listOf()) } } diff --git a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/HighlightMutations.kt b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/HighlightMutations.kt index bf9ea94c6..29e6fce2b 100644 --- a/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/HighlightMutations.kt +++ b/android/Omnivore/app/src/main/java/app/omnivore/omnivore/networking/HighlightMutations.kt @@ -151,7 +151,8 @@ suspend fun Networker.createHighlight(input: CreateHighlightInput): Highlight? { createdAt = null, // TODO: update gql query to get this updatedAt = null, // TODO: fix updatedAtString?.let { LocalDate.parse(it) }, createdByMe = createdHighlight.highlightFields.createdByMe, - markedForDeletion = false + markedForDeletion = false, + serverSyncStatus = 0 ) } else { return null