Skip to content

Instantly share code, notes, and snippets.

@ikatson
Last active January 3, 2016 23:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ikatson/8533242 to your computer and use it in GitHub Desktop.
Save ikatson/8533242 to your computer and use it in GitHub Desktop.
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