Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 21 additions & 13 deletions backend/apps/account_payment/graphql.py
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,7 @@ def resolve_client_secret(root, info):
return root.latest_invoice.payment_intent.client_secret


class StripeSubscriptionCreateMutation(Mutation):
class StripeSubscribeMutation(Mutation):
"""Create stripe subscription"""

client_secret = String()
Expand Down Expand Up @@ -371,16 +371,24 @@ class Arguments:
@login_required
def mutate(cls, root, info, subscription_id):
try:
admin = info.context.user
subscription = Subscription.objects.get(id=subscription_id)
assert admin.id == subscription.admin.id

errors = []
for account in subscription.subscribers.all():
try:
remove_user(account.gcp_email or account.email)
except Exception as e:
errors.append(f"Erro ao remover {account.email}: {str(e)}")
logger.error(f"Falha ao remover usuário {account.email}: {e}")
subscription.subscribers.clear()

stripe_subscription = subscription.subscription
stripe_subscription.cancel(at_period_end=False)
return None
except Exception as e:
logger.error(e)
return cls(errors=[str(e)])


class StripeSubscriptionCustomerCreateMutation(Mutation):
class StripeSubscriptionAddMemberMutation(Mutation):
"""Add account to subscription"""

ok = Boolean()
Expand Down Expand Up @@ -414,7 +422,7 @@ def mutate(cls, root, info, account_id, subscription_id):
return cls(errors=[str(e)])


class StripeSubscriptionCustomerDeleteMutation(Mutation):
class StripeSubscriptionRemoveMemberMutation(Mutation):
"""Remove account from subscription"""

ok = Boolean()
Expand All @@ -440,8 +448,8 @@ def mutate(cls, root, info, account_id, subscription_id):
return cls(errors=[str(e)])


class StripeSubscriptionCustomerAllMembersDeleteMutation(Mutation):
"""Remove all members from subscription"""
class StripeSubscriptionRemoveAllMembersMutation(Mutation):
"""Remove all members from a subscription, but keeps the subscription active for the admin."""

ok = Boolean()
errors = List(String)
Expand Down Expand Up @@ -573,12 +581,12 @@ class Query(ObjectType):
class Mutation(ObjectType):
create_stripe_customer = StripeCustomerCreateMutation.Field()
update_stripe_customer = StripeCustomerUpdateMutation.Field()
create_stripe_subscription = StripeSubscriptionCreateMutation.Field()
create_stripe_subscription = StripeSubscribeMutation.Field()
delete_stripe_subscription = StripeSubscriptionDeleteMutation.Field()
delete_stripe_subscription_immediately = StripeSubscriptionDeleteImmediatelyMutation.Field()
create_stripe_customer_subscription = StripeSubscriptionCustomerCreateMutation.Field()
update_stripe_customer_subscription = StripeSubscriptionCustomerDeleteMutation.Field()
delete_stripe_customer_all_members = StripeSubscriptionCustomerAllMembersDeleteMutation.Field()
add_stripe_subscription_member = StripeSubscriptionAddMemberMutation.Field()
remove_stripe_subscription_member = StripeSubscriptionRemoveMemberMutation.Field()
remove_all_stripe_subscription_members = StripeSubscriptionRemoveAllMembersMutation.Field()
validate_stripe_coupon = StripeCouponValidationMutation.Field()
change_user_gcp_email = ChangeUserGCPEmail.Field()

Expand Down
Loading