From 3a1d8ca8c006e7da24617c1f98fec13289920c12 Mon Sep 17 00:00:00 2001 From: Nick Sergeant Date: Sat, 19 Oct 2013 20:48:00 -0400 Subject: [PATCH] Working on Stripe account details. --- accounts/urls.py | 1 + accounts/views.py | 29 +++++++++++++++++++++++++++-- snipts/api.py | 2 +- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/accounts/urls.py b/accounts/urls.py index 376cbbe..c64d949 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -4,5 +4,6 @@ from accounts import views urlpatterns = patterns('', url(r'^stats/$', views.stats, name='account-stats'), + url(r'^stripe-account-details/$', views.stripe_account_details, name='stripe-account-details'), url(r'^', views.account, name='account-detail'), ) diff --git a/accounts/views.py b/accounts/views.py index f4ba56d..a29626d 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1,13 +1,38 @@ from django.contrib.auth.decorators import login_required -from django.http import HttpResponseRedirect -from annoying.decorators import render_to +from annoying.decorators import ajax_request, render_to from snipts.models import Snipt +import stripe + +from settings_local import STRIPE_SECRET_KEY + + @login_required @render_to('account.html') def account(request): return {} + +@login_required +@ajax_request +def stripe_account_details(request): + + if request.user.profile.stripe_id is None: + return {} + else: + stripe.api_key = STRIPE_SECRET_KEY + customer = stripe.Customer.retrieve(request.user.profile.stripe_id) + return { + 'last4': customer.active_card.last4, + 'created': customer.created, + 'email': customer.email, + 'amount': customer.subscription.plan.amount, + 'interval': customer.subscription.plan.interval, + 'name': customer.subscription.plan.name, + 'status': customer.subscription.status, + } + + @login_required @render_to('stats.html') def stats(request): diff --git a/snipts/api.py b/snipts/api.py index 296de08..f9d7ba2 100644 --- a/snipts/api.py +++ b/snipts/api.py @@ -264,7 +264,7 @@ class PrivateUserProfileResource(ModelResource): class Meta: queryset = UserProfile.objects.all() resource_name = 'profile' - excludes = ['is_pro', 'stripe_id'] + excludes = ['is_pro'] validation = UserProfileValidation() include_absolute_url = False allowed_methods = ['get', 'put']