removeRole function

Future<void> removeRole({
  1. required String accessToken,
  2. required String roleToRemove,
})

Implementation

Future<void> removeRole({
  required String accessToken,
  required String roleToRemove,
})async{
  Account? account = await getAccountUsingAccessToken(
    accessToken: accessToken,
  );
  if(account != null){
    //Add role if it does not exist already
    if(!account.roles.contains(roleToRemove)){
      throw "$roleToRemove role does not exist";
    }else{
      List<String> updatedRoles = account.roles;
      updatedRoles.remove(roleToRemove);
      Account updatedAccount = Account(
        uuid: account.uuid,
        username: account.username,
        password: account.password,
        accessTokens: account.accessTokens,
        roles: updatedRoles,
      );
      File outputFile = File("${authFolder.path}/${updatedAccount.uuid}.json");
      await outputFile.writeAsString(updatedAccount.json());
    }
  }else{
    throw "Invalid access token";
  }
}