updateAccountPassword method
Implementation
@override
Future<void> updateAccountPassword(String newPassword, String oldPassword) async {
logger.finest('updateAccountPassword($newPassword)');
//
if (newPassword.isEmpty || newPassword.isEmpty || newPassword == oldPassword) {
// invalid password !!!
logger.severe('invalid password !!!');
throw HycopUtils.getHycopException(defaultMessage: 'invalid password !!!');
}
//
Map<String, dynamic> newUserData = {};
newUserData.addAll(AccountManager.currentLoginUser.getValueMap);
newUserData['password'] = HycopUtils.stringToSha1(newPassword);
String userForeignKey = newUserData['userForeignKey'] ?? '';
if (userForeignKey.isEmpty) {
throw HycopUtils.getHycopException(defaultMessage: 'userForeignKey is null !!!');
}
// set to appwrite-account
Account account = Account(AbsDatabase.awDBConn!);
await account.updatePassword(password: newPassword, oldPassword: oldPassword).catchError((error,
stackTrace) =>
throw HycopUtils.getHycopException(error: error, defaultMessage: 'Unknown DB Error !!!'));
// set to hycop_users collection
await HycopFactory.dataBase!
.setData('hycop_users', 'user=$userForeignKey', newUserData)
.catchError((error, stackTrace) =>
throw HycopUtils.getHycopException(error: error, defaultMessage: 'setData Error !!!'));
}