minor refactoring

pull/77/head
Matheus Lima 2019-03-15 18:13:30 -03:00
parent ff16ce4477
commit 6ee52127e8
1 changed files with 39 additions and 27 deletions

View File

@ -256,34 +256,11 @@ class AccountEndpoint(SeleneEndpoint):
membership_repository = MembershipRepository(db)
active_membership = membership_repository.get_active_membership_by_account_id(self.account.id)
if active_membership:
active_membership.end_date = datetime.utcnow()
active_stripe_subscription = stripe.Subscription.retrieve(active_membership.payment_id)
active_stripe_subscription.delete()
membership_repository.finish_membership(active_membership)
add_membership = UpdateMembership(self.request_data.get('support'))
add_membership.validate()
support = self.request_data['support']
membership_type = support['membership']
membership = self._get_plan(membership_type)
stripe_id, start_date, subscription_stripe_id = self._create_stripe_subscription(
active_membership.payment_account_id,
None,
self.account.email_address,
membership.stripe_plan
)
self.cancel_membership(active_membership, membership_repository)
membership_type, start_date, stripe_id, subscription_stripe_id = self.update_membership(
active_membership)
else:
add_membership = AddMembership(self.request_data.get('support'))
add_membership.validate()
support = self.request_data['support']
membership_type = support['membership']
token = support['paymentToken']
membership = self._get_plan(membership_type)
stripe_id, start_date, subscription_stripe_id = self._create_stripe_subscription(
None,
token,
self.account.email_address,
membership.stripe_plan
)
membership_type, start_date, stripe_id, subscription_stripe_id = self.create_membership()
new_membership = AccountMembership(
start_date=start_date,
@ -293,3 +270,38 @@ class AccountEndpoint(SeleneEndpoint):
type=membership_type
)
AccountRepository(db).add_membership(self.account.id, new_membership)
def create_membership(self):
add_membership = AddMembership(self.request_data.get('support'))
add_membership.validate()
support = self.request_data['support']
membership_type = support['membership']
token = support['paymentToken']
membership = self._get_plan(membership_type)
stripe_id, start_date, subscription_stripe_id = self._create_stripe_subscription(
None,
token,
self.account.email_address,
membership.stripe_plan
)
return membership_type, start_date, stripe_id, subscription_stripe_id
def update_membership(self, active_membership):
add_membership = UpdateMembership(self.request_data.get('support'))
add_membership.validate()
support = self.request_data['support']
membership_type = support['membership']
membership = self._get_plan(membership_type)
stripe_id, start_date, subscription_stripe_id = self._create_stripe_subscription(
active_membership.payment_account_id,
None,
self.account.email_address,
membership.stripe_plan
)
return membership_type, start_date, stripe_id, subscription_stripe_id
def cancel_membership(self, active_membership, membership_repository):
active_membership.end_date = datetime.utcnow()
active_stripe_subscription = stripe.Subscription.retrieve(active_membership.payment_id)
active_stripe_subscription.delete()
membership_repository.finish_membership(active_membership)