diff --git a/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt b/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt deleted file mode 100644 index acf076434..000000000 --- a/core/database/src/main/java/com/google/samples/apps/nowinandroid/core/database/dao/UpsertHelper.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.google.samples.apps.nowinandroid.core.database.dao - -/** - * Performs an upsert by first attempting to insert [items] using [insertMany] with the the result - * of the inserts returned. - * - * Items that were not inserted due to conflicts are then updated using [updateMany] - */ -suspend fun upsert( - items: List, - insertMany: suspend (List) -> List, - updateMany: suspend (List) -> Unit, -) { - val insertResults = insertMany(items) - - val updateList = items.zip(insertResults) - .mapNotNull { (item, insertResult) -> - if (insertResult == -1L) item else null - } - if (updateList.isNotEmpty()) updateMany(updateList) -}