From a18da5c3a4f0264adc2592c981fcbeb11c9653af Mon Sep 17 00:00:00 2001 From: Serge Barysiuk Date: Fri, 7 Sep 2012 15:04:02 +0300 Subject: [PATCH 1/3] changes setup.py with correct Readme file path --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index e9d77438..c48d9daa 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ setup(name="python-intercom", version='0.2.3', description="Intercom API wrapper", - long_description=open('README.md').read(), + long_description=open('README').read(), author="John Keyes", author_email="john@keyes.ie", license="MIT License", From 59c3597159bad555062a08857e2d1dd07a8b019a Mon Sep 17 00:00:00 2001 From: Andrey Maksimovich Date: Tue, 5 Mar 2013 10:54:20 +0300 Subject: [PATCH 2/3] support companies for users --- intercom/intercom.py | 8 ++++---- intercom/user.py | 12 +++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/intercom/intercom.py b/intercom/intercom.py index 98764172..92968ca0 100644 --- a/intercom/intercom.py +++ b/intercom/intercom.py @@ -121,7 +121,7 @@ def get_user(cls, email=None, user_id=None): @classmethod def create_user(cls, user_id=None, email=None, name=None, created_at=None, - custom_data=None, last_seen_ip=None, last_seen_user_agent=None): + custom_data=None, last_seen_ip=None, last_seen_user_agent=None, companies=None): """ Create a user from the available parameters. >>> from datetime import datetime @@ -138,11 +138,11 @@ def create_user(cls, user_id=None, email=None, name=None, created_at=None, """ return Intercom._create_or_update_user('POST', user_id=user_id, email=email, name=name, created_at=created_at, custom_data=custom_data, - last_seen_ip=last_seen_ip, last_seen_user_agent=last_seen_user_agent) + last_seen_ip=last_seen_ip, last_seen_user_agent=last_seen_user_agent, companies=companies) @classmethod def update_user(cls, user_id=None, email=None, name=None, created_at=None, - custom_data=None, last_seen_ip=None, last_seen_user_agent=None): + custom_data=None, last_seen_ip=None, last_seen_user_agent=None, companies=None): """ Update a user with the available parameters. >>> user = Intercom.get_user(user_id='123') @@ -155,7 +155,7 @@ def update_user(cls, user_id=None, email=None, name=None, created_at=None, """ return Intercom._create_or_update_user('PUT', user_id=user_id, email=email, name=name, created_at=created_at, custom_data=custom_data, - last_seen_ip=last_seen_ip, last_seen_user_agent=last_seen_user_agent) + last_seen_ip=last_seen_ip, last_seen_user_agent=last_seen_user_agent, companies=companies) @classmethod def create_impression(cls, user_id=None, email=None, user_ip=None, diff --git a/intercom/user.py b/intercom/user.py index e2a4287d..effa2528 100644 --- a/intercom/user.py +++ b/intercom/user.py @@ -45,7 +45,7 @@ class User(UserId): # pylint: disable=R0904 """ Object representing http://docs.intercom.io/#UserData). """ attributes = ('user_id', 'email', 'name', 'created_at', 'custom_data', - 'last_seen_ip', 'last_seen_user_agent') + 'last_seen_ip', 'last_seen_user_agent', 'companies') @classmethod def find(cls, user_id=None, email=None): @@ -151,6 +151,16 @@ def name(self, name): """ Sets the name. """ self['name'] = name + @property + def companies(self): + """ Returns the companies. """ + return dict.get(self, 'companies', None) + + @companies.setter + def companies(self, companies): + """ Sets the companies. """ + self['companies'] = companies + @property def last_seen_ip(self): """ Returns the last seen IP address. """ From 65993b47fb12c260d8ebdb1da59ec3ad2c13fc62 Mon Sep 17 00:00:00 2001 From: Andrey Maksimovich Date: Tue, 5 Mar 2013 12:07:18 +0300 Subject: [PATCH 3/3] update_user_company --- intercom/intercom.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/intercom/intercom.py b/intercom/intercom.py index 92968ca0..4b64e363 100644 --- a/intercom/intercom.py +++ b/intercom/intercom.py @@ -157,6 +157,12 @@ def update_user(cls, user_id=None, email=None, name=None, created_at=None, name=name, created_at=created_at, custom_data=custom_data, last_seen_ip=last_seen_ip, last_seen_user_agent=last_seen_user_agent, companies=companies) + @classmethod + def update_user_company(cls, user_id=None, company_id=None, company_data=None): + data = {'id': company_id} + data.update(company_data or {}) + Intercom._create_or_update_user('PUT', **{'user_id': user_id, 'companies': [data]}) + @classmethod def create_impression(cls, user_id=None, email=None, user_ip=None, user_agent=None, location=None):