Merge branch 'master' of ssh://bitbucket.org/yackob03/quay into webhooks

This commit is contained in:
yackob03 2013-11-16 14:47:29 -05:00
commit f55e4074e0
23 changed files with 310 additions and 36 deletions

View file

@ -1279,6 +1279,80 @@ def subscription_view(stripe_subscription, used_repos):
}
@app.route('/api/user/card', methods=['GET'])
@api_login_required
def get_user_card_api():
user = current_user.db_user()
return jsonify(get_card(user))
@app.route('/api/organization/<orgname>/card', methods=['GET'])
@api_login_required
def get_org_card_api(orgname):
permission = AdministerOrganizationPermission(orgname)
if permission.can():
organization = model.get_organization(orgname)
return jsonify(get_card(organization))
abort(403)
@app.route('/api/user/card', methods=['POST'])
@api_login_required
def set_user_card_api():
user = current_user.db_user()
token = request.get_json()['token']
return jsonify(set_card(user, token))
@app.route('/api/organization/<orgname>/card', methods=['POST'])
@api_login_required
def set_org_card_api(orgname):
permission = AdministerOrganizationPermission(orgname)
if permission.can():
organization = model.get_organization(orgname)
token = request.get_json()['token']
return jsonify(set_card(organization, token))
abort(403)
def set_card(user, token):
print token
if user.stripe_id:
cus = stripe.Customer.retrieve(user.stripe_id)
if cus:
cus.card = token
cus.save()
return get_card(user)
def get_card(user):
card_info = {
'is_valid': False
}
if user.stripe_id:
cus = stripe.Customer.retrieve(user.stripe_id)
if cus and cus.default_card:
# Find the default card.
default_card = None
for card in cus.cards.data:
if card.id == cus.default_card:
default_card = card
break
if default_card:
card_info = {
'owner': card.name,
'type': card.type,
'last4': card.last4
}
return {'card': card_info}
@app.route('/api/user/plan', methods=['PUT'])
@api_login_required
def subscribe_api():