@@ -2,14 +2,15 @@ package com.poti.android.domain.usecase.image
22
33import com.poti.android.core.common.constant.ImageConstants.IMAGE_EXTENSION
44import com.poti.android.domain.model.image.PresignedUploadInfo
5- import com.poti.android.domain.repository.FileUplaodRepository
5+ import com.poti.android.domain.repository.FileUploadRepository
66import com.poti.android.domain.repository.ImageRepository
77import java.io.File
88import javax.inject.Inject
9+ import kotlin.coroutines.cancellation.CancellationException
910
1011class UploadImagesUseCaseV2 @Inject constructor(
1112 private val imageRepository : ImageRepository ,
12- private val fileUplaodRepository : FileUplaodRepository ,
13+ private val fileUploadRepository : FileUploadRepository ,
1314) {
1415 suspend operator fun invoke (
1516 uploadType : String ,
@@ -21,11 +22,13 @@ class UploadImagesUseCaseV2 @Inject constructor(
2122 val files = createImages(uriStrings)
2223
2324 uploadImages(urls, files)
24- clearDirectory()
2525
2626 return Result .success(fileNames)
2727 } catch (t: Throwable ) {
28+ if (t is CancellationException ) throw t
2829 return Result .failure(t)
30+ } finally {
31+ clearDirectory()
2932 }
3033 }
3134
@@ -40,16 +43,22 @@ class UploadImagesUseCaseV2 @Inject constructor(
4043 private fun createImages (
4144 uriStrings : List <String >,
4245 ): List <File > = uriStrings.map { uri ->
43- fileUplaodRepository .createImage(uri).getOrThrow()
46+ fileUploadRepository .createImage(uri).getOrThrow()
4447 }
4548
4649 private suspend fun uploadImages (
4750 urls : List <String >,
4851 files : List <File >,
49- ) = urls.zip(files) { url, file ->
50- fileUplaodRepository.uploadImage(url, file).getOrThrow()
52+ ) {
53+ if (urls.size != files.size) {
54+ throw IllegalStateException (" Upload URL count and file count must match" )
55+ }
56+
57+ for (i in urls.indices) {
58+ fileUploadRepository.uploadImage(urls[i], files[i]).getOrThrow()
59+ }
5160 }
5261
53- private fun clearDirectory () = fileUplaodRepository
62+ private fun clearDirectory () = fileUploadRepository
5463 .clearDirectory().getOrThrow()
5564}
0 commit comments