Last active
January 3, 2016 23:09
-
-
Save ikatson/8533242 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def get_or_create_contact_from_phones(phones_list): | |
return load_json(request( | |
'POST /api/v1/contact/get_or_create_from_phones/', | |
as_json({'phone': phones_list}) | |
)) | |
def find_contact_by_email(email): | |
for contact in load_json(request('GET /api/v1/contact/?q=' + email)): | |
if email in contact['emails']: | |
return contact | |
def get_contact_by_id(id): | |
return load_json(request('GET /api/v1/contact/' + id + '/')) | |
def create_contact(data) | |
contact_id = request( | |
'POST /api/v1/contact/', to_json(data))['Location'] | |
return get_contact_by_id(contact_id) | |
def update_contact(contact_id, data): | |
return request( | |
'PATCH /api/v1/contact/' + contact_id + '/', to_json(data)) | |
def create_comment(contact_id, text): | |
data = {'text': text, "contact": '/api/v1/contact/' + contact_id + '/'} | |
return request('POST /api/v1/contactcomment/', to_json(data)) | |
# В данном примере data это данные из вашей формы. | |
data = post_data | |
# Создать уникальный контакт из телефонов, если они есть в форме | |
if data['phones']: | |
contact = get_or_create_contact_from_phones(data['phones'].split(',')) | |
# Если телефонов нет, искать контакт по email, если такого email нет, то создать новый | |
elif data['email']: | |
contact = find_contact_by_email(data['email']) | |
if not contact: | |
contact = create_contact({'emails': [email]}) | |
# Назначить контакт на сегодня | |
update_with_data = {'next_action_type': 'pending', 'next_action_date': today.strftime('%Y-%m-%d')} | |
# Если у контакта нет имени - добавить. | |
if not contact['name']: | |
update_with_data['name'] = data['name'] | |
# Если email нет в списке - добавить. | |
if not data['email'] in contact['emails']: | |
contact['emails'].append(data['email']) | |
update_with_data['emails'] = contact['emails'] | |
# Отправить запрос на сервер | |
update_contact(contact['id'], update_with_data) | |
create_comment(contact['id'], 'На сайте example.com создан запрос: ' + to_string(data)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment