Skip to content

Commit a1224ca

Browse files
gpuntoCopilotVelikovPetar
authored
Update uploader FileType to not be sealed and remove unneeded property (#149)
* Update uploader FileType to not be sealed and remove unneeded format * Update stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/file/StreamFeedUploaderTest.kt Co-authored-by: Copilot <[email protected]> --------- Co-authored-by: Copilot <[email protected]> Co-authored-by: Petar Velikov <[email protected]>
1 parent 29be2a5 commit a1224ca

File tree

8 files changed

+24
-28
lines changed

8 files changed

+24
-28
lines changed

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/file/FileType.kt

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,8 @@ package io.getstream.feeds.android.client.api.file
2222
* This is used to differentiate between file types that may require different handling or
2323
* validation, such as images versus other generic files.
2424
*/
25-
public sealed interface FileType {
26-
public data class Image(val format: String) : FileType
25+
public interface FileType {
26+
public data object Image : FileType
2727

28-
public data class Other(val format: String) : FileType
28+
public data object Other : FileType
2929
}
30-
31-
/**
32-
* A convenience extension property to check if a [FileType] is an image.
33-
*
34-
* @return `true` if this instance is an image, `false` otherwise.
35-
*/
36-
public val FileType.isImage: Boolean
37-
get() = this is FileType.Image

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/api/file/UploadPayload.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ import java.io.File
2525
* type, and the contextual metadata required to process it.
2626
*
2727
* @property file The local [File] object on disk that is to be uploaded.
28-
* @property type The semantic type of the file, represented by the [FileType] sealed interface.
29-
* This helps differentiate between images, videos, documents, etc.
28+
* @property type The semantic type of the file, represented by the [FileType] interface.
3029
* @property context The metadata required to process the upload.
3130
*/
3231
public data class UploadPayload<C : UploadContext>(

stream-feeds-android-client/src/main/kotlin/io/getstream/feeds/android/client/internal/file/StreamFeedUploader.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ package io.getstream.feeds.android.client.internal.file
1919
import io.getstream.android.core.result.runSafely
2020
import io.getstream.feeds.android.client.api.file.FeedUploadPayload
2121
import io.getstream.feeds.android.client.api.file.FeedUploader
22+
import io.getstream.feeds.android.client.api.file.FileType
2223
import io.getstream.feeds.android.client.api.file.UploadedFile
23-
import io.getstream.feeds.android.client.api.file.isImage
2424
import io.getstream.feeds.android.client.internal.http.ProgressRequestBody
2525
import java.io.File
2626
import okhttp3.MediaType
@@ -45,7 +45,12 @@ internal class StreamFeedUploader(
4545
body = requestBody,
4646
)
4747

48-
val response = if (payload.type.isImage) cdnApi.sendImage(part) else cdnApi.sendFile(part)
48+
val response =
49+
if (payload.type == FileType.Image) {
50+
cdnApi.sendImage(part)
51+
} else {
52+
cdnApi.sendFile(part)
53+
}
4954

5055
UploadedFile(
5156
fileUrl = response.file ?: throw IllegalStateException("Uploaded file URL is null"),

stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/file/StreamFeedUploaderTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ internal class StreamFeedUploaderTest {
4949
coEvery { cdnApi.sendFile(any()) } returns uploadResponse
5050
val expectedResult =
5151
Result.success(UploadedFile(fileUrl = "file", thumbnailUrl = "thumbnail"))
52-
val payload = FeedUploadPayload(file = File("test.txt"), type = FileType.Other("txt"))
52+
val payload = FeedUploadPayload(file = File("test.txt"), type = FileType.Other)
5353

5454
val result = uploader.upload(payload)
5555

@@ -62,7 +62,7 @@ internal class StreamFeedUploaderTest {
6262
coEvery { cdnApi.sendImage(any()) } returns uploadResponse
6363
val expectedResult =
6464
Result.success(UploadedFile(fileUrl = "img", thumbnailUrl = "thumbnail"))
65-
val payload = FeedUploadPayload(file = File("test.png"), type = FileType.Image("png"))
65+
val payload = FeedUploadPayload(file = File("test.png"), type = FileType.Image)
6666

6767
val result = uploader.upload(payload)
6868

@@ -72,7 +72,7 @@ internal class StreamFeedUploaderTest {
7272
@Test
7373
fun `upload when a progress listener is provided, then notify progress`() = runTest {
7474
val file = temporaryFolder.newFile("test.png").apply { writeText("dummy file content") }
75-
val payload = FeedUploadPayload(file = file, type = FileType.Image("png"))
75+
val payload = FeedUploadPayload(file = file, type = FileType.Image)
7676
val progressListener: (Double) -> Unit = mockk(relaxed = true)
7777
val uploadResponse = FileUploadResponse(duration = "", file = "img", thumbUrl = "thumbnail")
7878
coEvery { cdnApi.sendImage(any()) } answers

stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/repository/ActivitiesRepositoryImplTest.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ internal class ActivitiesRepositoryImplTest {
7171
fun `on addActivity, upload attachments and send api request`() = runTest {
7272
val attachmentUploads =
7373
listOf(
74-
FeedUploadPayload(File("1"), FileType.Image("jpg")),
75-
FeedUploadPayload(File("2"), FileType.Image("png")),
74+
FeedUploadPayload(File("1"), FileType.Image),
75+
FeedUploadPayload(File("2"), FileType.Image),
7676
)
7777
val request =
7878
FeedAddActivityRequest(
@@ -111,7 +111,7 @@ internal class ActivitiesRepositoryImplTest {
111111

112112
@Test
113113
fun `addActivity on upload error return failure`() = runTest {
114-
val attachmentUploads = listOf(FeedUploadPayload(File("some file"), FileType.Image("jpg")))
114+
val attachmentUploads = listOf(FeedUploadPayload(File("some file"), FileType.Image))
115115
val request =
116116
FeedAddActivityRequest(
117117
request = AddActivityRequest(type = "post", text = "Nice post"),

stream-feeds-android-client/src/test/kotlin/io/getstream/feeds/android/client/internal/repository/CommentsRepositoryImplTest.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ internal class CommentsRepositoryImplTest {
6767
fun `on addComment, upload attachments and send api request`() = runTest {
6868
val attachmentUploads =
6969
listOf(
70-
FeedUploadPayload(File("1"), FileType.Image("jpg")),
71-
FeedUploadPayload(File("2"), FileType.Image("png")),
70+
FeedUploadPayload(File("1"), FileType.Image),
71+
FeedUploadPayload(File("2"), FileType.Image),
7272
)
7373
val request =
7474
ActivityAddCommentRequest(
@@ -101,7 +101,7 @@ internal class CommentsRepositoryImplTest {
101101

102102
@Test
103103
fun `addComment on error return failure`() = runTest {
104-
val attachmentUploads = listOf(FeedUploadPayload(File("some file"), FileType.Image("jpg")))
104+
val attachmentUploads = listOf(FeedUploadPayload(File("some file"), FileType.Image))
105105
val request =
106106
ActivityAddCommentRequest(
107107
request =
@@ -122,8 +122,8 @@ internal class CommentsRepositoryImplTest {
122122

123123
@Test
124124
fun `on addCommentsBatch, upload attachments and send api request`() = runTest {
125-
val payload1 = FeedUploadPayload(File("1"), FileType.Image("jpg"))
126-
val payload2 = FeedUploadPayload(File("2"), FileType.Image("png"))
125+
val payload1 = FeedUploadPayload(File("1"), FileType.Image)
126+
val payload2 = FeedUploadPayload(File("2"), FileType.Image)
127127
val requests =
128128
listOf(
129129
ActivityAddCommentRequest(

stream-feeds-android-sample/src/main/java/io/getstream/feeds/android/sample/feed/CommentsSheetViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ constructor(
151151
createNotificationActivity = true,
152152
attachmentUploads =
153153
attachmentFiles.map {
154-
FeedUploadPayload(file = it, type = FileType.Image("jpeg"))
154+
FeedUploadPayload(file = it, type = FileType.Image)
155155
},
156156
),
157157
attachmentUploadProgress = { file, progress ->

stream-feeds-android-sample/src/main/java/io/getstream/feeds/android/sample/feed/FeedViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ constructor(private val application: Application, loginManager: LoginManager) :
259259
text = text,
260260
feeds = listOf(feedId.rawValue),
261261
expiresAt = if (isStory) Clock.System.now().plus(1.days).toString() else null,
262-
attachmentUploads = attachments.map { FeedUploadPayload(it, FileType.Image("jpeg")) },
262+
attachmentUploads = attachments.map { FeedUploadPayload(it, FileType.Image) },
263263
)
264264

265265
fun onCreatePoll(poll: PollFormData) {

0 commit comments

Comments
 (0)