support for articles; ui & ux & logic fixes for 2fa and captcha screens; fix mentions;
This commit is contained in:
@@ -75,7 +75,7 @@ data class InvalidCredentialsError(
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class WrongTwoFaCode(
|
||||
data class WrongTwoFaCodeError(
|
||||
@Json(name = "error") override val error: String, // "invalid_request"
|
||||
@Json(name = "error_description") override val errorDescription: String,
|
||||
@Json(name = "error_type") override val errorType: String // "wrong_otp"
|
||||
@@ -86,7 +86,7 @@ data class WrongTwoFaCode(
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class WrongTwoFaCodeFormat(
|
||||
data class WrongTwoFaCodeFormatError(
|
||||
@Json(name = "error") override val error: String, // "invalid_request"
|
||||
@Json(name = "error_description") override val errorDescription: String,
|
||||
@Json(name = "error_type") override val errorType: String // "otp_format_is_incorrect"
|
||||
@@ -96,6 +96,17 @@ data class WrongTwoFaCodeFormat(
|
||||
errorType = errorType
|
||||
)
|
||||
|
||||
@JsonClass(generateAdapter = true)
|
||||
data class TooManyTriesError(
|
||||
@Json(name = "error") override val error: String, // "9;Flood control"
|
||||
@Json(name = "error_description") override val errorDescription: String,
|
||||
@Json(name = "error_type") override val errorType: String // "password_bruteforce_attempt"
|
||||
) : OAuthError(
|
||||
error = error,
|
||||
errorDescription = errorDescription,
|
||||
errorType = errorType
|
||||
)
|
||||
|
||||
fun OAuthError.toDomain(): OAuthErrorDomain? = when (this) {
|
||||
is ValidationRequiredError -> {
|
||||
OAuthErrorDomain.ValidationRequiredError(
|
||||
@@ -129,13 +140,17 @@ fun OAuthError.toDomain(): OAuthErrorDomain? = when (this) {
|
||||
OAuthErrorDomain.InvalidCredentialsError
|
||||
}
|
||||
|
||||
is WrongTwoFaCode -> {
|
||||
is WrongTwoFaCodeError -> {
|
||||
OAuthErrorDomain.WrongTwoFaCode
|
||||
}
|
||||
|
||||
is WrongTwoFaCodeFormat -> {
|
||||
is WrongTwoFaCodeFormatError -> {
|
||||
OAuthErrorDomain.WrongTwoFaCodeFormat
|
||||
}
|
||||
|
||||
is TooManyTriesError -> {
|
||||
OAuthErrorDomain.TooManyTriesError
|
||||
}
|
||||
|
||||
else -> null
|
||||
}
|
||||
|
||||
@@ -27,5 +27,7 @@ sealed class OAuthErrorDomain {
|
||||
data object InvalidCredentialsError : OAuthErrorDomain()
|
||||
data object WrongTwoFaCode : OAuthErrorDomain()
|
||||
data object WrongTwoFaCodeFormat : OAuthErrorDomain()
|
||||
data object TooManyTriesError: OAuthErrorDomain()
|
||||
|
||||
data object UnknownError : OAuthErrorDomain()
|
||||
}
|
||||
|
||||
@@ -110,6 +110,11 @@ internal class ResultCall<R : Any, E : OAuthError>(
|
||||
.fromJson(errorBodyString.orEmpty()) ?: return
|
||||
|
||||
val error: OAuthError? = when (baseError.error) {
|
||||
"9;Flood control" -> {
|
||||
moshi.adapter(TooManyTriesError::class.java)
|
||||
.fromJson(errorBodyString.orEmpty())
|
||||
}
|
||||
|
||||
"invalid_client" -> {
|
||||
moshi.adapter(InvalidCredentialsError::class.java)
|
||||
.fromJson(errorBodyString.orEmpty())
|
||||
@@ -123,12 +128,12 @@ internal class ResultCall<R : Any, E : OAuthError>(
|
||||
"invalid_request" -> {
|
||||
when (val type = baseError.errorType) {
|
||||
"wrong_otp" -> {
|
||||
moshi.adapter(WrongTwoFaCode::class.java)
|
||||
moshi.adapter(WrongTwoFaCodeError::class.java)
|
||||
.fromJson(errorBodyString.orEmpty())
|
||||
}
|
||||
|
||||
"otp_format_is_incorrect" -> {
|
||||
moshi.adapter(WrongTwoFaCodeFormat::class.java)
|
||||
moshi.adapter(WrongTwoFaCodeFormatError::class.java)
|
||||
.fromJson(errorBodyString.orEmpty())
|
||||
}
|
||||
|
||||
|
||||
@@ -51,10 +51,12 @@ object VkOAuthErrors {
|
||||
const val NEED_CAPTCHA = "need_captcha"
|
||||
const val INVALID_CLIENT = "invalid_client"
|
||||
const val INVALID_REQUEST = "invalid_request"
|
||||
const val FLOOD_CONTROL = "9;Flood control"
|
||||
|
||||
}
|
||||
|
||||
object VkErrorTypes {
|
||||
const val WRONG_OTP_FORMAT = "otp_format_is_incorrect"
|
||||
const val WRONG_OTP = "wrong_otp"
|
||||
const val PASSWORD_BRUTEFORCE_ATTEMPT = "password_bruteforce_attempt"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user