updatePassword method

Future<void> updatePassword(
  1. UpdatePasswordRequest updatePasswordRequest
)

Make request for password reset

You can choose between a UpdatePasswordRequestWithAccessToken that require a authToken and your oldPassword

or a UpdatePasswordRequestWithFreshAccessToken that need a authToken with an access token from less than 5 minutes ago

or a UpdatePasswordRequestWithEmail that need your email and a verification code

or a UpdatePasswordRequestWithPhoneNumber that need your phone number and a verification code

Implementation

Future<void> updatePassword(
  UpdatePasswordRequest updatePasswordRequest,
) async {
  try {
    await updatePasswordRequest.map<Future<void>>(
      withAccessToken: (updatePasswordRequestWithAccessToken) =>
          _platform.updatePasswordWithAccessToken(
        reachFiveKey: ReachFiveKeyConverter.toInterface(reachFiveKey),
        authToken: AuthTokenConverter.toInterface(
          updatePasswordRequestWithAccessToken.authToken,
        ),
        oldPassword: updatePasswordRequestWithAccessToken.oldPassword,
        newPassword: updatePasswordRequestWithAccessToken.newPassword,
      ),
      withFreshAccessToken: (updatePasswordRequestWithFreshAccessToken) =>
          _platform.updatePasswordWithFreshAccessToken(
        reachFiveKey: ReachFiveKeyConverter.toInterface(reachFiveKey),
        freshAuthToken: AuthTokenConverter.toInterface(
          updatePasswordRequestWithFreshAccessToken.freshAuthToken,
        ),
        newPassword: updatePasswordRequestWithFreshAccessToken.newPassword,
      ),
      withEmail: (updatePasswordRequestWithEmail) =>
          _platform.updatePasswordWithEmail(
        reachFiveKey: ReachFiveKeyConverter.toInterface(reachFiveKey),
        email: updatePasswordRequestWithEmail.email,
        verificationCode: updatePasswordRequestWithEmail.verificationCode,
        newPassword: updatePasswordRequestWithEmail.newPassword,
      ),
      withPhoneNumber: (updatePasswordRequestWithPhoneNumber) =>
          _platform.updatePasswordWithPhoneNumber(
        reachFiveKey: ReachFiveKeyConverter.toInterface(reachFiveKey),
        phoneNumber: updatePasswordRequestWithPhoneNumber.phoneNumber,
        verificationCode:
            updatePasswordRequestWithPhoneNumber.verificationCode,
        newPassword: updatePasswordRequestWithPhoneNumber.newPassword,
      ),
    );
  } catch (error, stackTrace) {
    try {
      _platform.parseError(error, stackTrace);
    } catch (interfaceError, interfaceStackTrace) {
      adaptErrors(
        error: interfaceError,
        stackTrace: interfaceStackTrace,
      );
    }
  }
}