Update the subscription change webhook to be more friendly and not send emails for payments.

This commit is contained in:
jakedt 2014-04-17 16:18:37 -04:00
parent 05b3851a54
commit a0cbead5aa
2 changed files with 25 additions and 7 deletions

View file

@ -46,7 +46,23 @@ def stripe_webhook():
cust = model.get_user_or_org_by_customer_id(customer_id)
cust_email = cust.email if cust is not None else 'unknown@domain.com'
quay_username = cust.username if cust is not None else 'unknown'
send_subscription_change(event_type, customer_id, cust_email, quay_username)
change_type = ''
if event_type.endswith('.deleted'):
plan_id = request_data['data']['object']['plan']['id']
change_type = 'canceled %s' % plan_id
send_subscription_change(change_type, customer_id, cust_email, quay_username)
elif event_type.endswith('.created'):
plan_id = request_data['data']['object']['plan']['id']
change_type = 'subscribed %s' % plan_id
send_subscription_change(change_type, customer_id, cust_email, quay_username)
elif event_type.endswith('.updated'):
if 'previous_attributes' in request_data['data']:
if 'plan' in request_data['data']['previous_attributes']:
old_plan = request_data['data']['previous_attributes']['plan']['id']
new_plan = request_data['data']['object']['plan']['id']
change_type = 'switched %s -> %s' % (old_plan, new_plan)
send_subscription_change(change_type, customer_id, cust_email, quay_username)
return make_response('Okay')

View file

@ -35,12 +35,14 @@ not given access. Please disregard this email.<br>
SUBSCRIPTION_CHANGE = """
Event name: {0}<br>
Change: {0}<br>
Customer id: <a href="https://manage.stripe.com/customers/{1}">{1}</a><br>
Customer email: <a href="mailto:{2}">{2}</a><br>
Quay user or org name: {3}<br>
"""
SUBSCRIPTION_CHANGE_TITLE = 'Subscription Change - {0} {1}'
def send_change_email(username, email, token):
msg = Message('Quay.io email change. Please confirm your email.',
@ -74,9 +76,9 @@ def send_invoice_email(email, contents):
mail.send(msg)
def send_subscription_change(event_name, customer_id, customer_email, quay_username):
msg = Message('Quay.io Customer Subscription Change',
sender='support@quay.io', # Why do I need this?
recipients=['stripe@quay.io'])
msg.html = SUBSCRIPTION_CHANGE.format(event_name, customer_id, customer_email, quay_username)
def send_subscription_change(change_description, customer_id, customer_email, quay_username):
title = SUBSCRIPTION_CHANGE_TITLE.format(quay_username, change_description)
msg = Message(title, sender='support@quay.io', recipients=['stripe@quay.io'])
msg.html = SUBSCRIPTION_CHANGE.format(change_description, customer_id, customer_email,
quay_username)
mail.send(msg)