From be7c742b300d0409d477f85a19791fe1bfe01218 Mon Sep 17 00:00:00 2001 From: bskjon Date: Mon, 6 Jan 2025 00:19:31 +0100 Subject: [PATCH] Handling erroring insert --- apps/coordinator/build.gradle.kts | 2 +- .../mapping/store/ContentCatalogStore.kt | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/coordinator/build.gradle.kts b/apps/coordinator/build.gradle.kts index 5966f70e..e91dafbb 100644 --- a/apps/coordinator/build.gradle.kts +++ b/apps/coordinator/build.gradle.kts @@ -37,7 +37,7 @@ dependencies { implementation("org.json:json:20210307") implementation("no.iktdev:exfl:0.0.16-SNAPSHOT") - implementation("no.iktdev.streamit.library:streamit-library-db:1.0.0-alpha11") + implementation("no.iktdev.streamit.library:streamit-library-db:1.0.0-alpha12") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1") diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ContentCatalogStore.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ContentCatalogStore.kt index 4c42b7ed..3cf20991 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ContentCatalogStore.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/tasksV2/mapping/store/ContentCatalogStore.kt @@ -97,8 +97,8 @@ object ContentCatalogStore { log.error { "serieInfo in videoDetails is null!" } return } - val insert = withTransaction(getStoreDatabase()) { - serie.insertIgnore { + val status = insertWithSuccess(getStoreDatabase().database) { + serie.insert { it[title] = serieInfo.episodeTitle it[episode] = serieInfo.episodeNumber it[season] = serieInfo.seasonNumber @@ -106,6 +106,21 @@ object ContentCatalogStore { it[serie.collection] = collection } } + if (!status) { + log.error { "Failed to insert ${videoDetails.fileName} with episode: ${serieInfo.episodeNumber} and season ${serieInfo.seasonNumber}" } + val finalStatus = insertWithSuccess(getStoreDatabase().database) { + serie.insert { + it[title] = serieInfo.episodeTitle + it[episode] = serieInfo.episodeNumber + it[season] = 0 + it[video] = videoDetails.fileName + it[serie.collection] = collection + } + } + if (!finalStatus) { + log.error { "Failed to insert ${videoDetails.fileName} with fallback season 0" } + } + } } fun storeMedia(title: String, collection: String, type: String, videoDetails: VideoDetails) {