2013-01-12 09:45:20 -08:00
|
|
|
from django.contrib.auth.decorators import login_required
|
2013-10-19 17:48:00 -07:00
|
|
|
from annoying.decorators import ajax_request, render_to
|
2013-01-12 09:45:20 -08:00
|
|
|
from snipts.models import Snipt
|
|
|
|
|
2013-10-19 17:48:00 -07:00
|
|
|
import stripe
|
|
|
|
|
|
|
|
|
2013-02-11 22:13:22 -08:00
|
|
|
@login_required
|
|
|
|
@render_to('account.html')
|
|
|
|
def account(request):
|
|
|
|
return {}
|
|
|
|
|
2013-10-19 17:48:00 -07:00
|
|
|
|
|
|
|
@login_required
|
2014-05-23 06:13:43 -07:00
|
|
|
@ajax_request
|
|
|
|
def cancel_subscription(request):
|
|
|
|
|
|
|
|
if request.user.profile.stripe_id is None:
|
|
|
|
return {}
|
|
|
|
else:
|
2014-10-20 08:50:04 -07:00
|
|
|
stripe.api_key = os.environ['STRIPE_SECRET_KEY']
|
2014-05-23 06:13:43 -07:00
|
|
|
customer = stripe.Customer.retrieve(request.user.profile.stripe_id)
|
|
|
|
customer.delete()
|
|
|
|
|
|
|
|
profile = request.user.profile
|
|
|
|
profile.is_pro = False
|
|
|
|
profile.stripe_id = None
|
|
|
|
profile.save()
|
|
|
|
|
|
|
|
return { 'deleted': True }
|
|
|
|
|
|
|
|
@login_required
|
2013-10-19 17:48:00 -07:00
|
|
|
@ajax_request
|
|
|
|
def stripe_account_details(request):
|
|
|
|
|
|
|
|
if request.user.profile.stripe_id is None:
|
|
|
|
return {}
|
|
|
|
else:
|
2014-10-20 08:50:04 -07:00
|
|
|
stripe.api_key = os.environ['STRIPE_SECRET_KEY']
|
2013-10-19 17:48:00 -07:00
|
|
|
customer = stripe.Customer.retrieve(request.user.profile.stripe_id)
|
2013-10-22 10:58:13 -07:00
|
|
|
|
|
|
|
data = {
|
2013-10-19 17:48:00 -07:00
|
|
|
'last4': customer.active_card.last4,
|
|
|
|
'created': customer.created,
|
|
|
|
'email': customer.email,
|
|
|
|
}
|
|
|
|
|
2013-10-22 10:58:13 -07:00
|
|
|
if customer.subscription:
|
|
|
|
data['amount'] = customer.subscription.plan.amount
|
|
|
|
data['interval'] = customer.subscription.plan.interval
|
|
|
|
data['name'] = customer.subscription.plan.name
|
|
|
|
data['status'] = customer.subscription.status
|
|
|
|
data['nextBill'] = customer.subscription.current_period_end
|
|
|
|
else:
|
|
|
|
data['status'] = 'inactive'
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
2013-10-19 17:48:00 -07:00
|
|
|
|
2013-01-12 09:45:20 -08:00
|
|
|
@login_required
|
|
|
|
@render_to('stats.html')
|
|
|
|
def stats(request):
|
|
|
|
|
|
|
|
snipts = Snipt.objects.filter(user=request.user).order_by('-views')
|
|
|
|
|
|
|
|
return {
|
|
|
|
'snipts': snipts
|
|
|
|
}
|