deleteEmailAccount method

Future<void> deleteEmailAccount(
  1. Session session, {
  2. required String email,
  3. Transaction? transaction,
})

Deletes an email account by email address.

This will delete the email authentication account for the given email address. Related data such as password reset requests will be automatically deleted due to cascade delete constraints.

Throws an EmailAccountNotFoundException if no account exists for the given email address.

Implementation

Future<void> deleteEmailAccount(
  final Session session, {
  required final String email,
  final Transaction? transaction,
}) async {
  return DatabaseUtil.runInTransactionOrSavepoint(
    session.db,
    transaction,
    (final transaction) async {
      final deleted = await _utils.account.deleteAccount(
        session,
        email: email,
        authUserId: null,
        transaction: transaction,
      );

      if (deleted.isEmpty) {
        throw EmailAccountNotFoundException();
      }
    },
  );
}