Reconcile confirmed photo uploads with server state
This commit is contained in:
@@ -39,10 +39,9 @@ interface PhotoUploadDao {
|
||||
SELECT * FROM photo_uploads
|
||||
WHERE routeId = :routeId
|
||||
AND status = 'CONFIRMED'
|
||||
AND clientRequestId IN (:clientRequestIds)
|
||||
""",
|
||||
)
|
||||
suspend fun confirmedForServerPhotos(routeId: String, clientRequestIds: List<String>): List<PhotoUploadEntity>
|
||||
suspend fun confirmedForRoute(routeId: String): List<PhotoUploadEntity>
|
||||
|
||||
@Query(
|
||||
"""
|
||||
|
||||
@@ -80,10 +80,7 @@ class PhotoUploadOutbox(
|
||||
}
|
||||
|
||||
suspend fun discardConfirmedServerPhotos(route: DriverRouteDto) {
|
||||
val confirmedRequestIds = route.photos.mapNotNull { it.clientRequestId }.distinct()
|
||||
if (confirmedRequestIds.isEmpty()) return
|
||||
|
||||
dao.confirmedForServerPhotos(route.id, confirmedRequestIds).forEach { upload ->
|
||||
dao.confirmedForRoute(route.id).forEach { upload ->
|
||||
File(upload.localPath).delete()
|
||||
dao.delete(upload.clientRequestId)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user