1-
21class Personalization (object ):
32 def __init__ (self , client , token ):
3+ """
4+
5+ :param client: the api client
6+ :param token: the token
7+ """
48
59 self .client = client
610 self .token = token
711
812 def get (self , url , ** params ):
913 """
1014 Get personalized activities for this feed
15+ :param url: personalized url endpoint i.e "follow recommendations"
16+ :param params: params to pass to url i.e user_id = "user:123"
17+ :return: personalized feed
1118
12- :param params:
13- :return:
19+ **Example**::
20+
21+ personalization.get('follow_recommendations', limit=10, offset=10)
1422 """
1523
1624 response = self .client .get (url , personal = True , params = params ,
1725 signature = self .token )
1826 return response
1927
20- def post (self , url , * args , * *params ):
28+ def post (self , url , ** params ):
2129 """
2230 "Generic function to post data to personalization endpoint
23- :param url: personalization endpoint ex: "meta"
24- :param args: If endpoint has required args insert them here.
25- :param kwargs: data is a reserved keyword to post to body
31+ :param url: personalized url endpoint i.e "follow recommendations"
32+ :param params: params to pass to url (data is a reserved keyword to post to body)
2633
2734 """
2835
29- args = args or None
3036 data = params ['data' ] or None
31- print (data )
32- if args is not None :
33- url = url + '/' + '/' .join (list (args ))
3437
3538 response = self .client .post (url , personal = True , params = params ,
3639 signature = self .token , data = data )
3740 return response
3841
39- def upsert_data (self , item_type , ids , data ):
42+ def upsert_data (self , feed_group , ids , data ):
43+ """
44+
45+ :param feed_group: Feed Group i.e 'user'
46+ :param ids: list of ids of feed group i.e [123,456]
47+ :param data: list of dictionaries
48+ :return: http response, 201 if successful along with data posted.
49+
50+ **Example**::
51+ personalization.upsert_data('user', [1, 2], [{"name": "Juniper", "hobbies": ["Playing", "Sleeping", "Eating"]},
52+ {"name": "Ruby", "interests": ["Sunbeams", "Surprise Attacks"]}])
53+ """
4054
4155 if type (ids ) != list :
4256 ids = [ids ]
@@ -48,23 +62,31 @@ def upsert_data(self, item_type, ids, data):
4862 # format data to expected json blob
4963 data_json = {}
5064 for i in range (len (ids )):
51- data_json ['%s:%s' % (item_type , ids [i ])] = data [i ]
65+ data_json ['%s:%s' % (feed_group , ids [i ])] = data [i ]
5266
5367 response = self .post ("meta" , data = {'data' : data_json })
5468
5569 return response
5670
57- def select_data (self , item_type , ids ):
71+ def select_data (self , feed_group , ids ):
72+ """
73+
74+ :param feed_group: Feed Group i.e 'user'
75+ :param ids: list of ids of feed group i.e [123,456]
76+ :return: meta data as json blob
77+
78+ **Example**::
79+ personalization.select_data('user', 1)
80+ personalization.select_data('user', [1,2,3])
81+ """
5882
5983 if type (ids ) != list :
6084 ids = [ids ]
6185
6286 foreign_ids = []
6387 for i in range (len (ids )):
64- foreign_ids .append ('%s:%s' % (item_type , ids [i ]))
88+ foreign_ids .append ('%s:%s' % (feed_group , ids [i ]))
6589
6690 response = self .get ('meta' , foreign_ids = foreign_ids )
6791
6892 return response
69-
70-
0 commit comments