forked from GetStream/stream-python
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpersonalization.py
More file actions
70 lines (58 loc) · 2.12 KB
/
personalization.py
File metadata and controls
70 lines (58 loc) · 2.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
class Personalization(object):
def __init__(self, client, token):
"""
Methods to interact with personalized feeds.
:param client: the api client
:param token: the token
"""
self.client = client
self.token = token
def get(self, resource, **params):
"""
Get personalized activities for this feed
:param resource: personalized resource endpoint i.e "follow_recommendations"
:param params: params to pass to url i.e user_id = "user:123"
:return: personalized feed
**Example**::
personalization.get('follow_recommendations', user_id=123, limit=10, offset=10)
"""
response = self.client.get(
resource,
service_name="personalization",
params=params,
signature=self.token,
)
return response
def post(self, resource, **params):
"""
"Generic function to post data to personalization endpoint
:param resource: personalized resource endpoint i.e "follow_recommendations"
:param params: params to pass to url (data is a reserved keyword to post to body)
**Example**::
#Accept or reject recommendations.
personalization.post('follow_recommendations', user_id=123, accepted=[123,345],
rejected=[456])
"""
data = params["data"] or None
response = self.client.post(
resource,
service_name="personalization",
params=params,
signature=self.token,
data=data,
)
return response
def delete(self, resource, **params):
"""
shortcut to delete metadata or activities
:param resource: personalized url endpoint typical "meta"
:param params: params to pass to url i.e user_id = "user:123"
:return: data that was deleted if if successful or not.
"""
response = self.client.delete(
resource,
service_name="personalization",
params=params,
signature=self.token,
)
return response