Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
102 changes: 3 additions & 99 deletions app/src/main/kotlin/com/infomaniak/auth/utils/MigrationUtils.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,15 @@
*/
package com.infomaniak.auth.utils

import com.infomaniak.auth.lib.models.migration.SharedApiToken
import com.infomaniak.auth.lib.models.migration.user.SharedUserProfile
import com.infomaniak.auth.lib.models.migration.user.preferences.Preferences
import com.infomaniak.auth.lib.models.migration.user.preferences.SharedCountry
import com.infomaniak.auth.lib.models.migration.user.preferences.SharedLanguage
import com.infomaniak.auth.lib.models.migration.user.preferences.SharedOrganizationPreference
import com.infomaniak.auth.lib.models.migration.user.preferences.SharedTimeZone
import com.infomaniak.auth.lib.models.migration.user.preferences.security.SharedAuthDevices
import com.infomaniak.auth.lib.models.migration.user.preferences.security.SharedSecurity
import com.infomaniak.core.auth.models.user.User
import com.infomaniak.auth.lib.models.migration.SharedApiToken
import com.infomaniak.core.auth.models.user.preferences.Country
import com.infomaniak.core.auth.models.user.preferences.Language
import com.infomaniak.core.auth.models.user.preferences.OrganizationPreference
import com.infomaniak.core.auth.models.user.preferences.Preferences as CorePreferences
import com.infomaniak.core.auth.models.user.preferences.TimeZone
import com.infomaniak.core.auth.models.user.preferences.security.AuthDevices
import com.infomaniak.core.auth.models.user.preferences.security.Security
import com.infomaniak.core.auth.models.user.preferences.Preferences as CorePreferences
import com.infomaniak.lib.login.ApiToken as LoginApiToken

fun LoginApiToken.toSharedApiToken(): SharedApiToken {
Expand Down Expand Up @@ -83,115 +75,27 @@ fun User.toSharedUser(): SharedUserProfile {
private fun Preferences.toCorePreferences() = CorePreferences(
security = security?.toSecurity(),
organizationPreference = organizationPreference.toOrganizationPreference(),
language = language.toLanguage(),
country = country.toCountry(),
timezone = timezone?.toTimeZone(),
)

private fun CorePreferences.toPreferences() = Preferences(
security = security?.toSharedSecurity(),
organizationPreference = organizationPreference.toSharedOrganizationPreference(),
language = language.toSharedLanguage(),
country = country.toSharedCountry(),
timezone = timezone?.toSharedTimeZone(),
)

private fun SharedLanguage.toLanguage() = Language(
shortName = shortName,
locale = locale,
shortLocale = shortLocale,
)

private fun Language.toSharedLanguage() = SharedLanguage(
shortName = shortName,
locale = locale,
shortLocale = shortLocale,
)

private fun SharedCountry.toCountry() = Country(
shortName = shortName,
isEnabled = isEnabled,
)

private fun Country.toSharedCountry() = SharedCountry(
shortName = shortName,
isEnabled = isEnabled,
)

private fun SharedTimeZone.toTimeZone() = TimeZone(
gmt = gmt,
)

private fun TimeZone.toSharedTimeZone() = SharedTimeZone(
gmt = gmt,
organizationPreference = organizationPreference.toSharedOrganizationPreference()
)

private fun SharedOrganizationPreference.toOrganizationPreference() = OrganizationPreference(
currentOrganizationId = currentOrganizationId,
lastLoginAt = lastLoginAt,
)

private fun OrganizationPreference.toSharedOrganizationPreference() = SharedOrganizationPreference(
currentOrganizationId = currentOrganizationId,
lastLoginAt = lastLoginAt,
)

private fun SharedSecurity.toSecurity() = Security(
score = score,
hasRecoveryEmail = hasRecoveryEmail,
hasValidPhone = hasValidPhone,
emailValidatedAt = emailValidatedAt ?: 0L,
otp = otp,
sms = sms,
smsPhone = smsPhone,
yubikey = yubikey,
infomaniakApplication = infomaniakApplication,
doubleAuth = doubleAuth,
remainingRescueCode = remainingRescueCode,
lastLoginAt = lastLoginAt,
dateLastChangedPassword = dateLastChangedPassword,
doubleAuthMethod = doubleAuthMethod,
authDevices = authDevices?.mapTo(ArrayList()) { it.toAuthDevices() },
)

private fun Security.toSharedSecurity() = SharedSecurity(
score = score,
hasRecoveryEmail = hasRecoveryEmail,
hasValidPhone = hasValidPhone,
emailValidatedAt = emailValidatedAt,
otp = otp,
sms = sms,
smsPhone = smsPhone,
yubikey = yubikey,
infomaniakApplication = infomaniakApplication,
doubleAuth = doubleAuth,
remainingRescueCode = remainingRescueCode,
lastLoginAt = lastLoginAt,
dateLastChangedPassword = dateLastChangedPassword,
doubleAuthMethod = doubleAuthMethod,
authDevices = authDevices?.mapTo(ArrayList()) { it.toSharedAuthDevices() },
)

private fun SharedAuthDevices.toAuthDevices() = AuthDevices(
id = id,
name = name,
lastConnexion = lastConnexion ?: 0L,
userAgent = userAgent,
userIp = userIp,
device = device,
createdAt = createdAt,
updatedAt = updatedAt,
deletedAt = deletedAt,
)

private fun AuthDevices.toSharedAuthDevices() = SharedAuthDevices(
id = id,
name = name,
lastConnexion = lastConnexion,
userAgent = userAgent,
userIp = userIp,
device = device,
createdAt = createdAt,
updatedAt = updatedAt,
deletedAt = deletedAt,
)
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,4 @@ data class Preferences(
var security: SharedSecurity?,
@SerialName("account")
var organizationPreference: SharedOrganizationPreference,
Comment thread
tevincent marked this conversation as resolved.
var language: SharedLanguage,
var country: SharedCountry,
var timezone: SharedTimeZone? = null,
)
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,4 @@ import kotlinx.serialization.Serializable
data class SharedOrganizationPreference(
@SerialName("current_account_id")
var currentOrganizationId: Int,
@SerialName("last_login_at")
var lastLoginAt: Long,
)
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,6 @@ import kotlinx.serialization.Serializable
@Serializable
data class SharedSecurity(
var score: Int,
@SerialName("has_recovery_email")
var hasRecoveryEmail: Boolean,
@SerialName("has_valid_phone")
var hasValidPhone: Boolean,
@SerialName("email_validated_at")
var emailValidatedAt: Long?,
var otp: Boolean,
var sms: Boolean,
@SerialName("sms_phone")
var smsPhone: String,
var yubikey: Boolean,
@SerialName("infomaniak_application")
var infomaniakApplication: Boolean,
@SerialName("double_auth")
var doubleAuth: Boolean,
@SerialName("remaining_rescue_code")
var remainingRescueCode: Int,
@SerialName("last_login_at")
var lastLoginAt: Long,
@SerialName("date_last_changed_password")
var dateLastChangedPassword: Long,
@SerialName("double_auth_method")
var doubleAuthMethod: String,
@SerialName("auth_devices")
var authDevices: ArrayList<SharedAuthDevices>?,
)
Comment thread
tevincent marked this conversation as resolved.
Loading