updatePassword method
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,
);
}
}
}