Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clean code #28

Merged
merged 2 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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: Int
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 isDownloadOnetime: Int
KevinBoulongne marked this conversation as resolved.
Show resolved Hide resolved
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: Int = 0 // TODO: Boolean ?
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 isDownloadOnetime: Int = 0 // TODO: Boolean ?
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 @@ -26,31 +26,26 @@ import kotlinx.serialization.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 = ""
override var needPassword: Int = 0
@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,20 @@ 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

override var isDownloadOnetime: Int = 0
@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
KevinBoulongne marked this conversation as resolved.
Show resolved Hide resolved
// 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 Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,24 +26,21 @@ import kotlinx.serialization.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
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)))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,14 @@ internal class UploadRequest(json: Json, httpClient: HttpClient) : BaseRequest(j

suspend fun uploadChunk(
uploadHost: String,
containerUUID: String,
fileUUID: String,
containerUuid: String,
fileUuid: String,
chunkIndex: Int,
isLastChunk: Boolean,
data: ByteArray,
): Boolean {
val httpResponse = httpClient.post(
urlString = SharedApiRoutes.uploadChunk(uploadHost, containerUUID, fileUUID, chunkIndex, isLastChunk)
urlString = SharedApiRoutes.uploadChunk(uploadHost, containerUuid, fileUuid, chunkIndex, isLastChunk)
) {
setBody(data)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ internal object ApiRoutes {
const val baseUrl = "https://www.swisstransfer.com/api/"

//region Transfer
fun getTransfer(linkUUID: String): String {
return "links/$linkUUID"
fun getTransfer(linkUuid: String): String {
KevinBoulongne marked this conversation as resolved.
Show resolved Hide resolved
return "links/$linkUuid"
}
//endRegion

Expand Down
Loading
Loading