Skip to content

Commit 0730b2a

Browse files
committed
feat: add new mutation remove all members
1 parent 01d438a commit 0730b2a

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

backend/apps/account_payment/graphql.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,41 @@ def mutate(cls, root, info, account_id, subscription_id):
418418
return cls(errors=[str(e)])
419419

420420

421+
class StripeSubscriptionCustomerAllMembersDeleteMutation(Mutation):
422+
"""Remove all members from subscription"""
423+
424+
ok = Boolean()
425+
errors = List(String)
426+
427+
class Arguments:
428+
subscription_id = ID(required=True)
429+
430+
@classmethod
431+
@login_required
432+
def mutate(cls, root, info, subscription_id):
433+
try:
434+
admin = info.context.user
435+
subscription = Subscription.objects.get(id=subscription_id)
436+
assert admin.id == subscription.admin.id
437+
438+
errors = []
439+
for account in subscription.subscribers.all():
440+
try:
441+
remove_user(account.gcp_email or account.email)
442+
except Exception as e:
443+
errors.append(f"Erro ao remover {account.email}: {str(e)}")
444+
logger.error(f"Falha ao remover usuário {account.email}: {e}")
445+
446+
subscription.subscribers.clear()
447+
448+
if errors:
449+
return cls(ok=False, errors=errors)
450+
return cls(ok=True)
451+
except Exception as e:
452+
logger.error(e)
453+
return cls(errors=[str(e)])
454+
455+
421456
class ChangeUserGCPEmail(Mutation):
422457
"""Change user GCP email"""
423458

@@ -520,6 +555,7 @@ class Mutation(ObjectType):
520555
delete_stripe_subscription = StripeSubscriptionDeleteMutation.Field()
521556
create_stripe_customer_subscription = StripeSubscriptionCustomerCreateMutation.Field()
522557
update_stripe_customer_subscription = StripeSubscriptionCustomerDeleteMutation.Field()
558+
delete_stripe_customer_all_members = StripeSubscriptionCustomerAllMembersDeleteMutation.Field()
523559
validate_stripe_coupon = StripeCouponValidationMutation.Field()
524560
change_user_gcp_email = ChangeUserGCPEmail.Field()
525561

0 commit comments

Comments
 (0)