deleteAccount function
String
deleteAccount(
{ - required Entry authDatabase,
- required String username,
})
Implementation
String deleteAccount({
required Entry authDatabase,
required String username,
}){
DbObject? accountForDeletion = _getAccount(
authDatabase: authDatabase,
username: username,
);
if(accountForDeletion == null){
throw "No account found asociated with the username $username.";
}else{
//Delete authentication tokens recursively
Map<String,dynamic> accountContent = accountForDeletion.view();
List<String> accessTokens = List<String>.from(accountContent["accessTokens"]);
for(String token in accessTokens){
try{
_removeAccessToken(
authDatabase: authDatabase,
accessToken: token,
);
}catch(error){
//Prevent error propagation
}
}
//Delete the account
authDatabase.select().delete(
key: "accounts",
uuid: accountForDeletion.uuid,
);
return "Account asociated with $username deleted successfully.";
}
}