use of com.amplifyframework.auth.cognito.options.AWSCognitoAuthConfirmResetPasswordOptions in project amplify-android by aws-amplify.
the class AWSCognitoAuthPlugin method confirmResetPassword.
@Override
public void confirmResetPassword(@NonNull String newPassword, @NonNull String confirmationCode, @NonNull AuthConfirmResetPasswordOptions options, @NonNull Action onSuccess, @NonNull Consumer<AuthException> onException) {
final Map<String, String> clientMetadata = new HashMap<>();
if (options instanceof AWSCognitoAuthConfirmResetPasswordOptions) {
AWSCognitoAuthConfirmResetPasswordOptions cognitoOptions = (AWSCognitoAuthConfirmResetPasswordOptions) options;
clientMetadata.putAll(cognitoOptions.getMetadata());
}
awsMobileClient.confirmForgotPassword(newPassword, confirmationCode, clientMetadata, new Callback<ForgotPasswordResult>() {
@Override
public void onResult(ForgotPasswordResult result) {
if (result.getState().equals(ForgotPasswordState.DONE)) {
onSuccess.call();
} else {
onException.accept(new AuthException("Received an unsupported response while confirming password recovery code: " + result.getState(), "This is almost certainly a bug. Please report it as an issue in our GitHub repo."));
}
}
@Override
public void onError(Exception error) {
onException.accept(CognitoAuthExceptionConverter.lookup(error, "Confirm reset password failed."));
}
});
}
use of com.amplifyframework.auth.cognito.options.AWSCognitoAuthConfirmResetPasswordOptions in project amplify-android by aws-amplify.
the class AuthComponentTest method confirmResetPasswordWithOptions.
/**
* Tests that the confirmResetPassword method of the Auth wrapper of AWSMobileClient (AMC) calls
* AMC.confirmForgotPassword with the new password and confirmation code it received.
* Also ensures that in the onResult case, the success callback is triggered and in the onError case,
* the error call back receives an AuthException with the root cause attached.
* @throws AuthException test fails if this gets thrown since method should succeed
*/
@Test
public void confirmResetPasswordWithOptions() throws AuthException {
ForgotPasswordResult amcResult = new ForgotPasswordResult(ForgotPasswordState.DONE);
AWSCognitoAuthConfirmResetPasswordOptions.CognitoBuilder options = AWSCognitoAuthConfirmResetPasswordOptions.builder();
Map<String, String> metadata = new HashMap<String, String>();
metadata.put("key", "value");
options.metadata(metadata);
AWSCognitoAuthConfirmResetPasswordOptions builtOptions = options.build();
doAnswer(invocation -> {
Callback<ForgotPasswordResult> callback = invocation.getArgument(3);
callback.onResult(amcResult);
return null;
}).when(mobileClient).confirmForgotPassword(anyString(), anyString(), anyMap(), Mockito.any());
synchronousAuth.confirmResetPassword(NEW_PASSWORD, CONFIRMATION_CODE, builtOptions);
verify(mobileClient).confirmForgotPassword(eq(NEW_PASSWORD), eq(CONFIRMATION_CODE), eq(metadata), any());
}
Aggregations