From 43a13f5c619452e19eab25af3e0c2616236fa392 Mon Sep 17 00:00:00 2001 From: Konstantin Chkhaidze Date: Tue, 18 Jun 2013 16:09:56 +0300 Subject: [PATCH] Add: unsubscribed_from_emails --- intercom/intercom.py | 12 ++++++++---- intercom/user.py | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/intercom/intercom.py b/intercom/intercom.py index 70361524..ff8a4bd6 100644 --- a/intercom/intercom.py +++ b/intercom/intercom.py @@ -143,7 +143,8 @@ 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, + unsubscribed_from_emails=None): """ Create a user from the available parameters. >>> from datetime import datetime @@ -162,12 +163,14 @@ def create_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_user_agent=last_seen_user_agent, + unsubscribed_from_emails=unsubscribed_from_emails) @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, + unsubscribed_from_emails=None): """ Update a user with the available parameters. >>> user = Intercom.get_user(user_id='123') @@ -182,7 +185,8 @@ def 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_user_agent=last_seen_user_agent, + unsubscribed_from_emails=unsubscribed_from_emails) @classmethod def delete_user(cls, user_id=None, email=None): diff --git a/intercom/user.py b/intercom/user.py index 9c0baf25..b548583e 100644 --- a/intercom/user.py +++ b/intercom/user.py @@ -49,7 +49,7 @@ class User(UserId): attributes = ( 'user_id', 'email', 'name', 'created_at', 'custom_data', - 'last_seen_ip', 'last_seen_user_agent') + 'last_seen_ip', 'last_seen_user_agent', 'unsubscribed_from_emails') @classmethod def find(cls, user_id=None, email=None): @@ -101,7 +101,8 @@ def find_by_user_id(cls, user_id): @classmethod def create( 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, + unsubscribed_from_emails=None): """ Create or update a user. >>> user = User.create(email="somebody@example.com") @@ -112,7 +113,8 @@ def create( resp = Intercom.create_user( 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_user_agent=last_seen_user_agent, + unsubscribed_from_emails=unsubscribed_from_emails) return cls(resp) @classmethod @@ -162,6 +164,16 @@ def save(self): resp = Intercom.update_user(**attrs) self.update(resp) + @property + def unsubscribed_from_emails(self): + """ Returns the unsubscribed_from_emails flag""" + return dict.get(self, 'unsubscribed_from_emails', True) + + @unsubscribed_from_emails.setter + def unsubscribed_from_emails(self, unsubscribed_from_emails): + """ Sets the unsubscribed_from_emails flag. """ + self['unsubscribed_from_emails'] = unsubscribed_from_emails + @property def name(self): """ Returns the name e.g. Joe Bloggs. """