Skip to content

Commit 8fc2788

Browse files
committed
feat: update func. added
1 parent b7b1568 commit 8fc2788

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

core/mongodb/src/main/kotlin/com/espressodev/gptmap/core/mongodb/RealmSyncService.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,8 @@ interface RealmSyncService {
2121
fun getFavourite(id: String): Favourite
2222

2323
fun getImageAnalyses(): Flow<List<ImageAnalysis>>
24+
25+
suspend fun deleteImageAnalysis(imageAnalysisId: String): Result<Boolean>
26+
27+
suspend fun updateImageAnalysisText(imageAnalysisId: String, text: String): Result<Boolean>
2428
}

core/mongodb/src/main/kotlin/com/espressodev/gptmap/core/mongodb/impl/RealmSyncServiceImpl.kt

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import io.realm.kotlin.UpdatePolicy
1515
import io.realm.kotlin.ext.query
1616
import kotlinx.coroutines.flow.Flow
1717
import kotlinx.coroutines.flow.map
18+
import kotlinx.coroutines.withContext
1819

1920
class RealmSyncServiceImpl : RealmSyncService {
2021

@@ -85,4 +86,29 @@ class RealmSyncServiceImpl : RealmSyncService {
8586
override fun isUserInDatabase(): Result<Boolean> = runCatching {
8687
realm.query<RealmUser>("userId == $0", realmUserId).first().find() != null
8788
}
89+
90+
override suspend fun deleteImageAnalysis(imageAnalysisId: String): Result<Boolean> = runCatching {
91+
realm.write {
92+
val imageAnalysisToDelete: RealmImageAnalysis = query<RealmImageAnalysis>("userId == $0 AND imageId == $1", realmUserId, imageAnalysisId)
93+
.find()
94+
.first()
95+
delete(imageAnalysisToDelete)
96+
}
97+
true
98+
}
99+
100+
override suspend fun updateImageAnalysisText(
101+
imageAnalysisId: String,
102+
text: String
103+
): Result<Boolean> = runCatching {
104+
realm.write {
105+
val imageAnalysisToUpdate: RealmImageAnalysis = query<RealmImageAnalysis>("userId == $0 AND imageId == $1", realmUserId, imageAnalysisId)
106+
.find()
107+
.first()
108+
findLatest(imageAnalysisToUpdate)?.let { realmImageAnalysis ->
109+
realmImageAnalysis.title = text
110+
}
111+
}
112+
true
113+
}
88114
}

0 commit comments

Comments
 (0)