Report the user's name and company to Marketo

Also fixes the API to report the other changes (username and email) as well
This commit is contained in:
Joseph Schorr 2016-11-09 15:29:53 -05:00
parent 860942ece1
commit 1a61ef4e04
8 changed files with 78 additions and 24 deletions

View file

@ -213,9 +213,13 @@ class User(ApiResource):
'type': ['string', 'null'],
'description': 'Custom email address for receiving invoices',
},
'name': {
'given_name': {
'type': 'string',
'description': 'The optional entered name for the user',
'description': 'The optional entered given name for the user',
},
'family_name': {
'type': 'string',
'description': 'The optional entered family name for the user',
},
'company': {
'type': 'string',
@ -332,10 +336,14 @@ class User(ApiResource):
code = model.user.create_confirm_email_code(user, new_email=new_email)
send_change_email(user.username, user_data['email'], code.code)
else:
user_analytics.change_email(user.email, new_email)
model.user.update_email(user, new_email, auto_verify=not features.MAILING)
if 'name' in user_data or 'company' in user_data:
model.user.update_user_metadata(user, user_data.get('name'), user_data.get('company'))
if 'given_name' in user_data or 'family_name' in user_data or 'company' in user_data:
model.user.update_user_metadata(user, user_data.get('given_name'),
user_data.get('family_name'), user_data.get('company'))
user_analytics.change_metadata(user.email, user_data.get('given_name'),
user_data.get('family_name'), user_data.get('company'))
# Check for username rename. A username can be renamed if the feature is enabled OR the user
# currently has a confirm_username prompt.
@ -353,6 +361,7 @@ class User(ApiResource):
raise request_error(message='Username is already in use')
user = model.user.change_username(user.id, new_username)
user_analytics.change_username(user.email, new_username)
elif confirm_username:
model.user.remove_user_prompt(user, 'confirm_username')