From 5d87b86afeb679b78bc46320a2446db295201e15 Mon Sep 17 00:00:00 2001 From: InsanusMokrassar Date: Fri, 15 Jan 2021 16:02:16 +0600 Subject: [PATCH] update passport data to use Base64StringSerializer --- .../tgbotapi/types/passport/EncryptedData.kt | 13 ++++++++----- .../types/passport/encrypted_data/Email.kt | 4 +++- .../passport/encrypted_data/EncryptedAddress.kt | 8 ++++---- .../encrypted_data/EncryptedPersonalDetails.kt | 12 ++++++------ .../types/passport/encrypted_data/Passport.kt | 11 +++++++---- .../types/passport/encrypted_data/PhoneNumber.kt | 4 +++- .../TranslatableFilesCollection.kt | 16 +++++++++++----- .../encrypted_data/TranslatableIDDocument.kt | 13 ++++++++----- .../abstracts/EncryptedPassportElement.kt | 6 ++++-- .../encrypted_data/abstracts/WithData.kt | 3 ++- 10 files changed, 56 insertions(+), 34 deletions(-) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/EncryptedData.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/EncryptedData.kt index 92953f6fee..ce198b65da 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/EncryptedData.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/EncryptedData.kt @@ -1,20 +1,23 @@ package dev.inmo.tgbotapi.types.passport +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.* import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable -typealias Base64EncodedData = String typealias EncryptedAndBase64EncodedData = String -typealias EncryptedByBotRSAAndBase64EncodedData = String +typealias EncryptedByBotPublicKeyData = String typealias EncryptedData = String @Serializable data class EncryptedCredentials( @SerialName(dataField) - val data: EncryptedAndBase64EncodedData, + @Serializable(Base64StringSerializer::class) + val data: EncryptedData, @SerialName(hashField) - val hash: Base64EncodedData, + @Serializable(Base64StringSerializer::class) + val hash: String, @SerialName(secretField) - val secret: EncryptedByBotRSAAndBase64EncodedData + @Serializable(Base64StringSerializer::class) + val secret: EncryptedByBotPublicKeyData ) diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Email.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Email.kt index bf641d08de..13d51fcb40 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Email.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Email.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.passport.Base64EncodedData import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithEmail @@ -11,6 +12,7 @@ data class Email( @SerialName(emailField) override val email: String, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : WithEmail { } \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedAddress.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedAddress.kt index 5d10c2f152..277bd63670 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedAddress.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedAddress.kt @@ -1,7 +1,7 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.dataField -import dev.inmo.tgbotapi.types.hashField import dev.inmo.tgbotapi.types.passport.* import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithData import kotlinx.serialization.SerialName @@ -10,7 +10,7 @@ import kotlinx.serialization.Serializable @Serializable(EncryptedElementSerializer::class) data class EncryptedAddress( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, - @SerialName(hashField) - override val hash: Base64EncodedData + override val data: EncryptedData, + @Serializable(Base64StringSerializer::class) + override val hash: String ) : WithData diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedPersonalDetails.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedPersonalDetails.kt index 76043d8ed3..6a21d51bb6 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedPersonalDetails.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/EncryptedPersonalDetails.kt @@ -1,9 +1,8 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.dataField -import dev.inmo.tgbotapi.types.hashField -import dev.inmo.tgbotapi.types.passport.Base64EncodedData -import dev.inmo.tgbotapi.types.passport.EncryptedAndBase64EncodedData +import dev.inmo.tgbotapi.types.passport.* import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithData import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -11,7 +10,8 @@ import kotlinx.serialization.Serializable @Serializable(EncryptedElementSerializer::class) data class EncryptedPersonalDetails( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, - @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val data: EncryptedData, + @Serializable(Base64StringSerializer::class) + override val hash: String ) : WithData diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Passport.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Passport.kt index c74a37d5d0..a666120399 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Passport.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/Passport.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.passport.* import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.* @@ -12,7 +13,7 @@ sealed class Passport : WithData, WithFrontSide, WithSelfie, Translatable @Serializable(EncryptedElementSerializer::class) data class CommonPassport( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, + override val data: EncryptedData, @SerialName(frontSideField) override val frontSide: PassportFile?, @SerialName(selfieField) @@ -20,12 +21,13 @@ data class CommonPassport( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : Passport() @Serializable(EncryptedElementSerializer::class) data class InternalPassport( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, + override val data: EncryptedData, @SerialName(frontSideField) override val frontSide: PassportFile?, @SerialName(selfieField) @@ -33,5 +35,6 @@ data class InternalPassport( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : Passport() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/PhoneNumber.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/PhoneNumber.kt index 4e0993348e..f05691e8ff 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/PhoneNumber.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/PhoneNumber.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.hashField import dev.inmo.tgbotapi.types.passport.Base64EncodedData import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.WithPhoneNumber @@ -12,6 +13,7 @@ data class PhoneNumber( @SerialName(phoneNumberField) override val phoneNumber: String, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : WithPhoneNumber { } \ No newline at end of file diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableFilesCollection.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableFilesCollection.kt index 4baf3945aa..ee0645f11f 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableFilesCollection.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableFilesCollection.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.passport.Base64EncodedData import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.FilesCollection @@ -17,7 +18,8 @@ data class UtilityBill( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableFilesCollection() @Serializable(EncryptedElementSerializer::class) data class BankStatement( @@ -26,7 +28,8 @@ data class BankStatement( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableFilesCollection() @Serializable(EncryptedElementSerializer::class) data class RentalAgreement( @@ -35,7 +38,8 @@ data class RentalAgreement( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableFilesCollection() @Serializable(EncryptedElementSerializer::class) data class PassportRegistration( @@ -44,7 +48,8 @@ data class PassportRegistration( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableFilesCollection() @Serializable(EncryptedElementSerializer::class) data class TemporaryRegistration( @@ -53,6 +58,7 @@ data class TemporaryRegistration( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableFilesCollection() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableIDDocument.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableIDDocument.kt index 3670018507..356e73536c 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableIDDocument.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/TranslatableIDDocument.kt @@ -1,8 +1,9 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.* import dev.inmo.tgbotapi.types.passport.Base64EncodedData -import dev.inmo.tgbotapi.types.passport.EncryptedAndBase64EncodedData +import dev.inmo.tgbotapi.types.passport.EncryptedData import dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts.* import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -13,7 +14,7 @@ sealed class TranslatableIDDocument : WithData, WithFrontSide, WithReverseSide, @Serializable(EncryptedElementSerializer::class) data class DriverLicense( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, + override val data: EncryptedData, @SerialName(frontSideField) override val frontSide: PassportFile?, @SerialName(reverseSideField) @@ -23,13 +24,14 @@ data class DriverLicense( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableIDDocument() @Serializable(EncryptedElementSerializer::class) data class IdentityCard( @SerialName(dataField) - override val data: EncryptedAndBase64EncodedData, + override val data: EncryptedData, @SerialName(frontSideField) override val frontSide: PassportFile?, @SerialName(reverseSideField) @@ -39,5 +41,6 @@ data class IdentityCard( @SerialName(translationField) override val translations: List, @SerialName(hashField) - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : TranslatableIDDocument() diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/EncryptedPassportElement.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/EncryptedPassportElement.kt index cce51ce039..664b31e488 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/EncryptedPassportElement.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/EncryptedPassportElement.kt @@ -1,5 +1,6 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts +import dev.inmo.micro_utils.serialization.base64.Base64StringSerializer import dev.inmo.tgbotapi.types.passport.Base64EncodedData import dev.inmo.tgbotapi.types.passport.encrypted_data.EncryptedElementSerializer import kotlinx.serialization.Serializable @@ -7,11 +8,12 @@ import kotlinx.serialization.json.JsonObject @Serializable(EncryptedElementSerializer::class) interface EncryptedPassportElement { - val hash: Base64EncodedData + val hash: String } @Serializable(EncryptedElementSerializer::class) data class UnknownEncryptedPassportElement( val rawJson: JsonObject, - override val hash: Base64EncodedData + @Serializable(Base64StringSerializer::class) + override val hash: String ) : EncryptedPassportElement diff --git a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/WithData.kt b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/WithData.kt index 23e63f5013..ba72eca9e4 100644 --- a/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/WithData.kt +++ b/tgbotapi.core/src/commonMain/kotlin/dev/inmo/tgbotapi/types/passport/encrypted_data/abstracts/WithData.kt @@ -1,10 +1,11 @@ package dev.inmo.tgbotapi.types.passport.encrypted_data.abstracts import dev.inmo.tgbotapi.types.passport.EncryptedAndBase64EncodedData +import dev.inmo.tgbotapi.types.passport.EncryptedData import dev.inmo.tgbotapi.types.passport.encrypted_data.EncryptedElementSerializer import kotlinx.serialization.Serializable @Serializable(EncryptedElementSerializer::class) interface WithData : EncryptedPassportElement { - val data: EncryptedAndBase64EncodedData + val data: EncryptedData } \ No newline at end of file