Skip to content

Commit

Permalink
Merge pull request #28 from Infomaniak/clean-code
Browse files Browse the repository at this point in the history
Clean code
  • Loading branch information
KevinBoulongne authored Oct 8, 2024
2 parents c4b3dc4 + 988db98 commit c23d729
Show file tree
Hide file tree
Showing 23 changed files with 87 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,16 @@ interface Container<F : List<File>> {
var duration: Long
var createdDateTimestamp: Long
var expiredDateTimestamp: Long
var numberOfFile: Long
var numberOfFiles: Int
var message: String?
var needPassword: Long
var lang: String
var needPassword: Boolean
var language: String
var sizeUploaded: Long
var deletedDateTimestamp: Long?
var swiftVersion: Long
var downloadLimit: Long
var swiftVersion: Int
var downloadLimit: Int
var source: String

// @SerialName("WSUser") TODO: What's it ?
//val wsUser: JsonElement?

// @SerialName("WSUser") // TODO: What's this ?
// val wsUser: JsonElement?
var files: F
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,11 @@
package com.infomaniak.multiplatform_swisstransfer.common.interfaces.transfers

interface File {
var containerUUID: String
var containerUuid: String
var uuid: String
var fileName: String
var fileSizeInBytes: Long
var downloadCounter: Long
var downloadCounter: Int
var createdDateTimestamp: Long
var expiredDateTimestamp: Long
var eVirus: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
package com.infomaniak.multiplatform_swisstransfer.common.interfaces.transfers

interface Transfer<ContainerType> {
var linkUUID: String
var containerUUID: String
var downloadCounterCredit: Long
var linkUuid: String
var containerUuid: String
var downloadCounterCredit: Int
var createdDateTimestamp: Long
var expiredDateTimestamp: Long
var isDownloadOnetime: Long
var hasBeenDownloadedOneTime: Boolean
var isMailSent: Boolean
var downloadHost: String
var container: ContainerType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,14 @@ interface UploadContainer {
val uuid: String
val duration: String
val downloadLimit: Long
val lang: String
val language: String
val source: String
val wsUser: String?
val authorIP: String
val swiftVersion: String

// val createdDate: Object // TODO: (Date) Waiting or deserialize this complex date object to timestamp
val expiredDateTimestamp: Long
val needPassword: Boolean
val message: String
val numberOfFiles: Long
val numberOfFiles: Int
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ import com.infomaniak.multiplatform_swisstransfer.utils.Constants
* @property transferManager A manager used to orchestrate transfer operations.
*/
class SwissTransferInjection {

private val realmProvider by lazy { RealmProvider() }
private val apiClientProvider by lazy { ApiClientProvider() }

private val transferRepository by lazy { TransferRepository(apiClientProvider) }
private val uploadRepository by lazy { UploadRepository(apiClientProvider) }
private val transferRepository by lazy { TransferRepository(apiClientProvider) }

private val appSettingsController by lazy { AppSettingsController(realmProvider) }

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import com.infomaniak.multiplatform_swisstransfer.common.models.ValidityPeriod
import io.realm.kotlin.types.RealmObject

class AppSettingsDB : RealmObject, AppSettings {

private var _theme: String = Theme.SYSTEM.value
override var theme: Theme
get() = Theme.entries.find { it.value == _theme } ?: DEFAULT_THEME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,16 @@ class ContainerDB : Container<RealmList<FileDB>>, RealmObject {
override var duration: Long = 0L
override var createdDateTimestamp: Long = 0L
override var expiredDateTimestamp: Long = 0L
override var numberOfFile: Long = 0L
override var numberOfFiles: Int = 0
override var message: String? = ""
override var needPassword: Long = 0L // TODO: Boolean ?
override var lang: String = ""
override var needPassword: Boolean = false
override var language: String = ""
override var sizeUploaded: Long = 0L
override var deletedDateTimestamp: Long? = null
override var swiftVersion: Long = 0L
override var downloadLimit: Long = 0L
override var swiftVersion: Int = 0
override var downloadLimit: Int = 0
override var source: String = ""

// @SerialName("WSUser") TODO: What's it ?
//val wsUser: JsonElement?

// @SerialName("WSUser") // TODO: What's this ?
// val wsUser: JsonElement?
override var files: RealmList<FileDB> = realmListOf()
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ import io.realm.kotlin.types.annotations.PrimaryKey

class FileDB : File, RealmObject {
@PrimaryKey
override var containerUUID: String = ""
override var containerUuid: String = ""
override var uuid: String = ""
override var fileName: String = ""
override var fileSizeInBytes: Long = 0L
override var downloadCounter: Long = 0L
override var downloadCounter: Int = 0
override var createdDateTimestamp: Long = 0L
override var expiredDateTimestamp: Long = 0L
override var eVirus: String = ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ import io.realm.kotlin.types.annotations.PrimaryKey

class TransferDB : Transfer<ContainerDB?>, RealmObject {
@PrimaryKey
override var linkUUID: String = ""
override var containerUUID: String = ""
override var downloadCounterCredit: Long = 0L
override var linkUuid: String = ""
override var containerUuid: String = ""
override var downloadCounterCredit: Int = 0
override var createdDateTimestamp: Long = 0L
override var expiredDateTimestamp: Long = 0L
override var isDownloadOnetime: Long = 0L // TODO: Boolean ?
override var hasBeenDownloadedOneTime: Boolean = false
override var isMailSent: Boolean = false
override var downloadHost: String = ""
override var container: ContainerDB? = null
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,38 +19,35 @@ package com.infomaniak.multiplatform_swisstransfer.network.models.transfer

import com.infomaniak.multiplatform_swisstransfer.common.interfaces.transfers.Container
import com.infomaniak.multiplatform_swisstransfer.network.serializers.DateToTimestampSerializer
import com.infomaniak.multiplatform_swisstransfer.network.serializers.IntToBooleanSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
class ContainerApi : Container<List<FileApi>> {
@SerialName("UUID")
override var uuid: String = ""

override var duration: Long = 0L

@SerialName("createdDate")
@Serializable(DateToTimestampSerializer::class)
override var createdDateTimestamp: Long = 0L

@SerialName("expiredDate")
@Serializable(DateToTimestampSerializer::class)
override var expiredDateTimestamp: Long = 0L
override var numberOfFile: Long = 0L
override var numberOfFiles: Int = 0
override var message: String? = null
override var needPassword: Long = 0L
override var lang: String = ""
@Serializable(with = IntToBooleanSerializer::class)
override var needPassword: Boolean = false
@SerialName("lang")
override var language: String = ""
override var sizeUploaded: Long = 0L

@SerialName("deletedDate")
@Serializable(DateToTimestampSerializer::class)
override var deletedDateTimestamp: Long? = null
override var swiftVersion: Long = 0L
override var downloadLimit: Long = 0L
override var swiftVersion: Int = 0
override var downloadLimit: Int = 0
override var source: String = "ST"

// @SerialName("WSUser") TODO: What's it ?
// var wsUser: JsonElement? = null

// @SerialName("WSUser") // TODO: What's this ?
// var wsUser: JsonElement? = null
override var files: List<FileApi> = emptyList()
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,16 @@ import kotlinx.serialization.Transient

@Serializable
class FileApi : File {
override var containerUUID: String = ""

override var containerUuid: String = ""
@SerialName("UUID")
override var uuid: String = ""
override var fileName: String = ""
override var fileSizeInBytes: Long = 0L
override var downloadCounter: Long = 0L

override var downloadCounter: Int = 0
@SerialName("createdDate")
@Serializable(DateToTimestampSerializer::class)
override var createdDateTimestamp: Long = 0L

@SerialName("expiredDate")
@Serializable(DateToTimestampSerializer::class)
override var expiredDateTimestamp: Long = 0L
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,25 +25,22 @@ import kotlinx.serialization.Serializable

@Serializable
class TransferApi : Transfer<ContainerApi> {
override var linkUUID: String = ""
override var containerUUID: String = ""
override var downloadCounterCredit: Long = 0L

override var linkUuid: String = ""
override var containerUuid: String = ""
override var downloadCounterCredit: Int = 0
@SerialName("createdDate")
@Serializable(DateToTimestampSerializer::class)
override var createdDateTimestamp: Long = 0L

@SerialName("expiredDate")
@Serializable(DateToTimestampSerializer::class)
override var expiredDateTimestamp: Long = 0L
override var isDownloadOnetime: Long = 0L

@SerialName("isDownloadOnetime")
@Serializable(with = IntToBooleanSerializer::class)
override var hasBeenDownloadedOneTime: Boolean = false
@Serializable(with = IntToBooleanSerializer::class)
override var isMailSent: Boolean = false
override var downloadHost: String = ""
override var container: ContainerApi = ContainerApi()

// TODO: Add download method url
val downloadUrl get() = "https://$downloadHost/api/download/??Quoi "
val downloadUrl get() = "https://$downloadHost/api/download/??Quoi " // TODO: Add download method url
// https://dl-j5769qrh.swisstransfer.com/api/download/ec6bc7ac-96b3-4a6e-8d30-8e12e379d11a/97a742c9-b0f5-4fa5-b6bf-cb2c2d6bbe94
override var container: ContainerApi = ContainerApi()
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ import kotlinx.serialization.Serializable
@Serializable
data class FinishUploadBody(
@SerialName("UUID")
val containerUUID: String = "",
val lang: String = "",
val containerUuid: String = "",
@SerialName("lang")
val language: String = "",
val recipientsEmails: List<String>? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
*/
package com.infomaniak.multiplatform_swisstransfer.network.models.upload.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
Expand All @@ -30,7 +31,8 @@ class InitUploadBody(
val numberOfFile: Int = 0,
val recaptcha: String = "",
val recaptchaVersion: Long = 0L,
val lang: String = "",
@SerialName("lang")
val language: String = "",
val files: List<UploadFileRequest> = emptyList(),
val recipientsEmails: String = "",
)
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
*/
package com.infomaniak.multiplatform_swisstransfer.network.models.upload.request

import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class ResendEmailCodeBody(
val address: String,
val lang: String, // example "fr_FR"
@SerialName("lang")
val language: String, // example "fr_FR"
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ import kotlinx.serialization.Serializable

@Serializable
class UploadCompleteResponse(
var linkUUID: String = "",
var containerUUID: String = "",
@SerialName("linkUUID")
var linkUuid: String = "",
@SerialName("containerUUID")
var containerUuid: String = "",
var userEmail: String? = null,
var downloadCounterCredit: Long = 0L,
@SerialName("createdDate")
Expand All @@ -34,8 +36,9 @@ class UploadCompleteResponse(
@SerialName("expiredDate")
@Serializable(DateToTimestampSerializer::class)
var expiredDateTimestamp: Long = 0L,
@SerialName("isDownloadOnetime")
@Serializable(with = IntToBooleanSerializer::class)
var isDownloadOnetime: Boolean = false,
var hasBeenDownloadedOneTime: Boolean = false,
@Serializable(with = IntToBooleanSerializer::class)
var isMailSent: Boolean = false,
)
Original file line number Diff line number Diff line change
Expand Up @@ -19,31 +19,30 @@ package com.infomaniak.multiplatform_swisstransfer.network.models.upload.respons

import com.infomaniak.multiplatform_swisstransfer.common.interfaces.upload.UploadContainer
import com.infomaniak.multiplatform_swisstransfer.network.serializers.DateToTimestampSerializer
import com.infomaniak.multiplatform_swisstransfer.network.serializers.IntToBooleanSerializer
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
class UploadContainerApi : UploadContainer {
@SerialName("UUID")
override var uuid: String = ""

override var duration: String = ""
override var downloadLimit: Long = 0L
override var lang: String = ""
@SerialName("lang")
override var language: String = ""
override var source: String = ""

@SerialName("WSUser")
override var wsUser: String? = null

override var authorIP: String = ""
override var swiftVersion: String = ""

// var createdDate: String // TODO: Why a complex date instead of a simple date ? May be Custom serial this
@SerialName("expiredDate")
@Serializable(DateToTimestampSerializer::class)
override var expiredDateTimestamp: Long = 0L
@Serializable(with = IntToBooleanSerializer::class)
override var needPassword: Boolean = false
override var message: String = ""
@SerialName("numberOfFile")
override var numberOfFiles: Long = 0L
override var numberOfFiles: Int = 0
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ class TransferRepository internal constructor(private val transferRequest: Trans
NetworkException::class,
UnknownException::class,
)
suspend fun getTransfer(linkUUID: String): ApiResponse<TransferApi> = transferRequest.getTransfer(linkUUID)
suspend fun getTransfer(linkUuid: String): ApiResponse<TransferApi> = transferRequest.getTransfer(linkUuid)
}
Original file line number Diff line number Diff line change
Expand Up @@ -103,13 +103,13 @@ class UploadRepository internal constructor(private val uploadRequest: UploadReq
)
suspend fun uploadChunk(
uploadHost: String,
containerUUID: String,
fileUUID: String,
containerUuid: String,
fileUuid: String,
chunkIndex: Int,
isLastChunk: Boolean,
data: ByteArray,
): Boolean {
return uploadRequest.uploadChunk(uploadHost, containerUUID, fileUUID, chunkIndex, isLastChunk, data)
return uploadRequest.uploadChunk(uploadHost, containerUuid, fileUuid, chunkIndex, isLastChunk, data)
}

@Throws(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ import kotlinx.serialization.json.Json

internal class TransferRequest(json: Json, httpClient: HttpClient) : BaseRequest(json, httpClient) {

suspend fun getTransfer(linkUUID: String): ApiResponse<TransferApi> {
return get(url = createUrl(ApiRoutes.getTransfer(linkUUID)))
suspend fun getTransfer(linkUuid: String): ApiResponse<TransferApi> {
return get(url = createUrl(ApiRoutes.getTransfer(linkUuid)))
}
}
Loading

0 comments on commit c23d729

Please sign in to comment.