updateAccountPassword method

  1. @override
Future<void> updateAccountPassword(
  1. String newPassword,
  2. String oldPassword
)
override

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 !!!'));
}