- Add some more analytics events

- Enable business features for personal users on business plans
- Fix a bug in the credit card image view
This commit is contained in:
Joseph Schorr 2013-12-20 22:38:53 -05:00
parent 8bfc0ac48d
commit c20e7dbcf7
10 changed files with 241 additions and 121 deletions

View file

@ -1601,9 +1601,31 @@ def subscribe(user, plan, token, require_business_plan):
return resp
@app.route('/api/user/invoices', methods=['GET'])
@api_login_required
def user_invoices_api():
user = current_user.db_user()
if not user.stripe_id:
abort(404)
return get_invoices(user.stripe_id)
@app.route('/api/organization/<orgname>/invoices', methods=['GET'])
@api_login_required
def org_invoices_api(orgname):
permission = AdministerOrganizationPermission(orgname)
if permission.can():
organization = model.get_organization(orgname)
if not organization.stripe_id:
abort(404)
return get_invoices(organization.stripe_id)
abort(403)
def get_invoices(customer_id):
def invoice_view(i):
return {
'id': i.id,
@ -1619,18 +1641,10 @@ def org_invoices_api(orgname):
'plan': i.lines.data[0].plan.id if i.lines.data[0].plan else None
}
permission = AdministerOrganizationPermission(orgname)
if permission.can():
organization = model.get_organization(orgname)
if not organization.stripe_id:
abort(404)
invoices = stripe.Invoice.all(customer=organization.stripe_id, count=12)
return jsonify({
'invoices': [invoice_view(i) for i in invoices.data]
})
abort(403)
invoices = stripe.Invoice.all(customer=customer_id, count=12)
return jsonify({
'invoices': [invoice_view(i) for i in invoices.data]
})
@app.route('/api/organization/<orgname>/plan', methods=['PUT'])
@ -1815,6 +1829,17 @@ def org_logs_api(orgname):
abort(403)
@app.route('/api/user/logs', methods=['GET'])
@api_login_required
def user_logs_api():
performer_name = request.args.get('performer', None)
start_time = request.args.get('starttime', None)
end_time = request.args.get('endtime', None)
return get_logs(current_user.db_user().username, start_time, end_time,
performer_name=performer_name)
def get_logs(namespace, start_time, end_time, performer_name=None,
repository=None):
performer = None