deleteTeam method

  1. @override
Future<AuthOrganizationTeam> deleteTeam(
  1. String teamId, {
  2. bool allowLastTeam = false,
})
override

Deletes team.

Implementation

@override
Future<AuthOrganizationTeam> deleteTeam(
  String teamId, {
  bool allowLastTeam = false,
}) => _atomic(() {
  final team = _teams[teamId.trim()];
  _require(team != null, 'team_not_found');
  if (!allowLastTeam) {
    final count = _teams.values
        .where((value) => value.organizationId == team!.organizationId)
        .length;
    _require(count > 1, 'last_team');
  }
  _teams.remove(team!.id);
  _teamMembers.removeWhere((_, member) => member.teamId == team.id);
  _invitations.updateAll((id, invite) {
    if (invite.teamId != team.id) return invite;
    return AuthOrganizationInvitation(
      id: invite.id,
      organizationId: invite.organizationId,
      email: invite.email,
      roles: invite.roles,
      inviterId: invite.inviterId,
      status: invite.status,
      expiresAt: invite.expiresAt,
      createdAt: invite.createdAt,
      attributes: invite.attributes,
    );
  });
  return team;
});