Skip to content

Commit 75ba016

Browse files
authored
feat(users): add merge user endpoint (#6)
* feat(users): add merge user endpoint * fix: doc for methpd
1 parent 36a3b7c commit 75ba016

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

knockapi/resources/users.py

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33

44
default_set_id = "default"
55

6+
67
class User(Service):
78
def get_user(self, id):
8-
warn("This method is deprecated. Use User.get instead.", DeprecationWarning, stacklevel=2)
9+
warn("This method is deprecated. Use User.get instead.",
10+
DeprecationWarning, stacklevel=2)
911
return self.get(id)
1012

1113
def get(self, id):
@@ -21,7 +23,6 @@ def get(self, id):
2123
endpoint = '/users/{}'.format(id)
2224
return self.client.request('get', endpoint)
2325

24-
2526
def identify(self, id, data={}):
2627
"""
2728
Identify a user, upserting them
@@ -62,7 +63,7 @@ def delete(self, id):
6263
"""
6364
endpoint = '/users/{}'.format(id)
6465
return self.client.request('delete', endpoint)
65-
66+
6667
def bulk_delete(self, user_ids):
6768
"""
6869
Bulk deletes up to 100 users.
@@ -77,7 +78,7 @@ def bulk_delete(self, user_ids):
7778
data = {'user_ids': user_ids}
7879
return self.client.request('post', endpoint, payload=data)
7980

80-
def get_feed(self, user_id, channel_id, options = None):
81+
def get_feed(self, user_id, channel_id, options=None):
8182
"""
8283
Gets a feed for the given user
8384
@@ -92,6 +93,21 @@ def get_feed(self, user_id, channel_id, options = None):
9293
endpoint = '/users/{}/feeds/{}'.format(user_id, channel_id)
9394
return self.client.request('get', endpoint, payload=options)
9495

96+
def merge(self, user_id, from_user_id):
97+
"""
98+
Merges the user specified with `from_user_id` into the user specified with `user_id`.
99+
100+
Args:
101+
user_id (str): The ID of the user to merge into
102+
from_user_id (str): The ID of the user to merge from
103+
104+
Returns
105+
dict: A Knock User response
106+
"""
107+
endpoint = '/users/{}/merge'.format(user_id)
108+
data = {'from_user_id': from_user_id}
109+
return self.client.request('post', endpoint, payload=data)
110+
95111
##
96112
# Channel data
97113
##
@@ -186,7 +202,7 @@ def set_preferences(self, user_id, channel_types=None, categories=None, workflow
186202
}
187203

188204
return self.client.request('put', endpoint, payload=params)
189-
205+
190206
def bulk_set_preferences(self, user_ids=[], preferences={}, options={}):
191207
"""
192208
Bulk sets the preference set for the users given

0 commit comments

Comments
 (0)