def payment(request, user=None, access_token=None): post_data = request.POST or json.loads(request.body) coupon_code = post_data.get("coupon_code") # TODO move to its own function or something if coupon_code: coupon = Coupon.get_by_code(coupon_code) if coupon.valid and coupon.stripe_plan_id is None: user.make_free_membership() return render_to_json({"access_token": access_token}, status=200) stripe_token = post_data['tokenId'] stripe_email = post_data['tokenEmail'] if user.stripe_customer_id is None: success, customer_id_or_message = create_subscription(stripe_token, stripe_email) if not success: return render_to_json({ "error": customer_id_or_message }, status=400) user.update_stripe_customer_id(customer_id_or_message) else: change_credit_card(user) return render_to_json({"access_token": access_token}, status=200)
def coupon(request, coupon_code): return render_to_json( Coupon.get_by_code(coupon_code).to_json(), status=200)