diff --git a/sdk/src/main/java/com/vk/api/sdk/exceptions/ApiAuthValidationException.java b/sdk/src/main/java/com/vk/api/sdk/exceptions/ApiAuthValidationException.java index 15c97f2a..7d2a30d1 100644 --- a/sdk/src/main/java/com/vk/api/sdk/exceptions/ApiAuthValidationException.java +++ b/sdk/src/main/java/com/vk/api/sdk/exceptions/ApiAuthValidationException.java @@ -1,7 +1,15 @@ package com.vk.api.sdk.exceptions; public class ApiAuthValidationException extends ApiException { - public ApiAuthValidationException(String message) { + + private final String redirectUri; + + public ApiAuthValidationException(String message, String redirectUri) { super(17, "Validation required", message); + this.redirectUri = redirectUri; + } + + public String getRedirectUri() { + return redirectUri; } } diff --git a/sdk/src/main/java/com/vk/api/sdk/exceptions/ExceptionMapper.java b/sdk/src/main/java/com/vk/api/sdk/exceptions/ExceptionMapper.java index f49d9f6c..e8e854ec 100644 --- a/sdk/src/main/java/com/vk/api/sdk/exceptions/ExceptionMapper.java +++ b/sdk/src/main/java/com/vk/api/sdk/exceptions/ExceptionMapper.java @@ -40,7 +40,7 @@ public static ApiException parseException(Error error) { case 16: return new ApiAuthHttpsException(error.getErrorMsg()); case 17: - return new ApiAuthValidationException(error.getErrorMsg()); + return new ApiAuthValidationException(error.getErrorMsg(), error.getRedirectUri()); case 18: return new ApiUserDeletedException(error.getErrorMsg()); case 19: diff --git a/sdk/src/main/java/com/vk/api/sdk/objects/base/Error.java b/sdk/src/main/java/com/vk/api/sdk/objects/base/Error.java index b140f027..e17953b1 100644 --- a/sdk/src/main/java/com/vk/api/sdk/objects/base/Error.java +++ b/sdk/src/main/java/com/vk/api/sdk/objects/base/Error.java @@ -37,6 +37,9 @@ public class Error implements Validable { @SerializedName("request_params") private List requestParams; + @SerializedName("redirect_uri") + private String redirectUri; + public Integer getErrorCode() { return errorCode; } @@ -82,9 +85,17 @@ public Error setRequestParams(List requestParams) { return this; } + public String getRedirectUri() { + return redirectUri; + } + + public void setRedirectUri(String redirectUri) { + this.redirectUri = redirectUri; + } + @Override public int hashCode() { - return Objects.hash(errorText, errorSubcode, requestParams, errorCode, errorMsg); + return Objects.hash(errorText, errorSubcode, requestParams, errorCode, errorMsg, redirectUri); } @Override @@ -96,7 +107,8 @@ public boolean equals(Object o) { Objects.equals(errorMsg, error.errorMsg) && Objects.equals(requestParams, error.requestParams) && Objects.equals(errorCode, error.errorCode) && - Objects.equals(errorSubcode, error.errorSubcode); + Objects.equals(errorSubcode, error.errorSubcode) && + Objects.equals(redirectUri, error.redirectUri); } @Override @@ -112,6 +124,7 @@ public String toPrettyString() { sb.append(", requestParams=").append(requestParams); sb.append(", errorCode=").append(errorCode); sb.append(", errorSubcode=").append(errorSubcode); + sb.append(", redirectUri=").append(redirectUri); sb.append('}'); return sb.toString(); }