Move fileUploadType into it's own file (#773)

This commit is contained in:
David Perez
2024-01-24 23:01:28 -06:00
committed by Álison Fernandes
parent 96513d74c3
commit 4669682b83
5 changed files with 34 additions and 28 deletions

View File

@@ -0,0 +1,23 @@
package com.x8bit.bitwarden.data.vault.datasource.network.model
import androidx.annotation.Keep
import com.x8bit.bitwarden.data.platform.datasource.network.serializer.BaseEnumeratedIntSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
/**
* Represents the type of file upload that should be used.
*/
@Serializable(FileUploadTypeSerializer::class)
enum class FileUploadType {
@SerialName("0")
DIRECT,
@SerialName("1")
AZURE,
}
@Keep
private class FileUploadTypeSerializer : BaseEnumeratedIntSerializer<FileUploadType>(
FileUploadType.entries.toTypedArray(),
)

View File

@@ -1,7 +1,5 @@
package com.x8bit.bitwarden.data.vault.datasource.network.model
import androidx.annotation.Keep
import com.x8bit.bitwarden.data.platform.datasource.network.serializer.BaseEnumeratedIntSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@@ -18,22 +16,4 @@ data class SendFileResponseJson(
@SerialName("sendResponse")
val sendResponse: SyncResponseJson.Send,
) {
/**
* Represents the type of file upload that should be used.
*/
@Serializable(FileUploadTypeSerializer::class)
enum class FileUploadType {
@SerialName("0")
DIRECT,
@SerialName("1")
AZURE,
}
}
@Keep
private class FileUploadTypeSerializer :
BaseEnumeratedIntSerializer<SendFileResponseJson.FileUploadType>(
SendFileResponseJson.FileUploadType.entries.toTypedArray(),
)
)

View File

@@ -5,6 +5,7 @@ import com.x8bit.bitwarden.data.platform.datasource.network.model.toBitwardenErr
import com.x8bit.bitwarden.data.platform.datasource.network.util.parseErrorBodyOrNull
import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi
import com.x8bit.bitwarden.data.vault.datasource.network.api.SendsApi
import com.x8bit.bitwarden.data.vault.datasource.network.model.FileUploadType
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendFileResponseJson
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendJsonRequest
import com.x8bit.bitwarden.data.vault.datasource.network.model.SyncResponseJson
@@ -59,7 +60,7 @@ class SendsServiceImpl(
): Result<SyncResponseJson.Send> {
val send = sendFileResponse.sendResponse
return when (sendFileResponse.fileUploadType) {
SendFileResponseJson.FileUploadType.DIRECT -> {
FileUploadType.DIRECT -> {
sendsApi.uploadFile(
sendId = requireNotNull(send.id),
fileId = requireNotNull(send.file?.id),
@@ -80,7 +81,7 @@ class SendsServiceImpl(
)
}
SendFileResponseJson.FileUploadType.AZURE -> {
FileUploadType.AZURE -> {
azureApi.uploadAzureBlob(
url = sendFileResponse.url,
date = DateTimeFormatter

View File

@@ -4,6 +4,7 @@ import android.net.Uri
import com.x8bit.bitwarden.data.platform.base.BaseServiceTest
import com.x8bit.bitwarden.data.vault.datasource.network.api.AzureApi
import com.x8bit.bitwarden.data.vault.datasource.network.api.SendsApi
import com.x8bit.bitwarden.data.vault.datasource.network.model.FileUploadType
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendFileResponseJson
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendTypeJson
import com.x8bit.bitwarden.data.vault.datasource.network.model.UpdateSendResponseJson
@@ -53,7 +54,7 @@ class SendsServiceTest : BaseServiceTest() {
fun `createFileSend should return the correct response`() = runTest {
val response = SendFileResponseJson(
url = "www.test.com",
fileUploadType = SendFileResponseJson.FileUploadType.AZURE,
fileUploadType = FileUploadType.AZURE,
sendResponse = createMockSend(number = 1, type = SendTypeJson.FILE),
)
server.enqueue(MockResponse().setBody(CREATE_FILE_SEND_SUCCESS_JSON))
@@ -115,7 +116,7 @@ class SendsServiceTest : BaseServiceTest() {
val mockSend = createMockSend(number = 1, type = SendTypeJson.FILE)
val sendFileResponse = SendFileResponseJson(
url = url,
fileUploadType = SendFileResponseJson.FileUploadType.AZURE,
fileUploadType = FileUploadType.AZURE,
sendResponse = mockSend,
)
val encryptedFile = byteArrayOf()
@@ -134,7 +135,7 @@ class SendsServiceTest : BaseServiceTest() {
val mockSend = createMockSend(number = 1, type = SendTypeJson.FILE)
val sendFileResponse = SendFileResponseJson(
url = "www.test.com",
fileUploadType = SendFileResponseJson.FileUploadType.DIRECT,
fileUploadType = FileUploadType.DIRECT,
sendResponse = mockSend,
)
val encryptedFile = byteArrayOf()

View File

@@ -27,6 +27,7 @@ import com.x8bit.bitwarden.data.platform.repository.util.bufferedMutableSharedFl
import com.x8bit.bitwarden.data.platform.util.asFailure
import com.x8bit.bitwarden.data.platform.util.asSuccess
import com.x8bit.bitwarden.data.vault.datasource.disk.VaultDiskSource
import com.x8bit.bitwarden.data.vault.datasource.network.model.FileUploadType
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendFileResponseJson
import com.x8bit.bitwarden.data.vault.datasource.network.model.SendTypeJson
import com.x8bit.bitwarden.data.vault.datasource.network.model.ShareCipherJsonRequest
@@ -1944,7 +1945,7 @@ class VaultRepositoryTest {
val encryptedByteArray = byteArrayOf(2)
val sendFileResponse = SendFileResponseJson(
url = url,
fileUploadType = SendFileResponseJson.FileUploadType.AZURE,
fileUploadType = FileUploadType.AZURE,
sendResponse = createMockSend(number = 1, type = SendTypeJson.FILE),
)
coEvery {
@@ -1988,7 +1989,7 @@ class VaultRepositoryTest {
val sendResponse = createMockSend(number = 1)
val sendFileResponse = SendFileResponseJson(
url = url,
fileUploadType = SendFileResponseJson.FileUploadType.AZURE,
fileUploadType = FileUploadType.AZURE,
sendResponse = sendResponse,
)
val mockSendViewResult = createMockSendView(number = 1)