8
8
from stream .serializer import _datetime_encoder
9
9
10
10
from stream import exceptions , serializer
11
- from stream .signing import sign
12
11
from stream .users import Users
13
12
from stream .utils import validate_feed_slug , validate_user_id , validate_foreign_id_time
14
- from stream .httpsig .requests_auth import HTTPSignatureAuth
15
13
from requests import Request
16
14
from stream .reactions import Reactions
17
15
from stream .collections import Collections
18
16
from stream .personalization import Personalization
17
+ from stream .feed import Feed
19
18
20
19
try :
21
20
from urllib .parse import urlparse
@@ -89,7 +88,6 @@ def __init__(
89
88
self .base_analytics_url = "https://analytics.stream-io-api.com/analytics/"
90
89
91
90
self .session = requests .Session ()
92
- self .auth = HTTPSignatureAuth (api_key , secret = api_secret )
93
91
94
92
token = self .create_jwt_token ("personalization" , "*" , feed_id = "*" , user_id = "*" )
95
93
self .personalization = Personalization (self , token )
@@ -110,15 +108,9 @@ def feed(self, feed_slug, user_id):
110
108
:param feed_slug: the slug of the feed
111
109
:param user_id: the user id
112
110
"""
113
- from stream .feed import Feed
114
-
115
111
feed_slug = validate_feed_slug (feed_slug )
116
112
user_id = validate_user_id (user_id )
117
-
118
- # generate the token
119
- feed_id = "%s%s" % (feed_slug , user_id )
120
- token = sign (self .api_secret , feed_id )
121
-
113
+ token = self .create_jwt_token ("feed" , "*" , feed_id = "*" )
122
114
return Feed (self , feed_slug , user_id , token )
123
115
124
116
def get_default_params (self ):
@@ -177,34 +169,6 @@ def _parse_response(self, response):
177
169
self .raise_exception (parsed_result , status_code = response .status_code )
178
170
return parsed_result
179
171
180
- def _make_signed_request (self , method_name , relative_url , params = None , data = None ):
181
- params = params or {}
182
- data = data or {}
183
- serialized = None
184
- headers = self .get_default_header ()
185
- headers ["X-Api-Key" ] = self .api_key
186
- date_header = datetime .utcnow ().strftime ("%a, %d %b %Y %H:%M:%S GMT" )
187
- headers ["Date" ] = date_header
188
- default_params = self .get_default_params ()
189
- default_params .update (params )
190
- url = self .get_full_url ("api" , relative_url )
191
- serialized = serializer .dumps (data )
192
- method = getattr (self .session , method_name )
193
- if method_name in ["post" , "put" ]:
194
- serialized = serializer .dumps (data )
195
- response = method (
196
- url ,
197
- auth = self .auth ,
198
- data = serialized ,
199
- headers = headers ,
200
- params = default_params ,
201
- timeout = self .timeout ,
202
- )
203
- logger .debug (
204
- "stream api call %s, headers %s data %s" , response .url , headers , data
205
- )
206
- return self ._parse_response (response )
207
-
208
172
def create_user_session_token (self , user_id , ** extra_data ):
209
173
"""Setup the payload for the given user_id with optional
210
174
extra data (key, value pairs) and encode it using jwt
@@ -286,8 +250,6 @@ def errors_from_fields(exception_fields):
286
250
error_message = result ["detail" ]
287
251
exception_fields = result .get ("exception_fields" )
288
252
if exception_fields is not None :
289
- errors = []
290
-
291
253
if isinstance (exception_fields , list ):
292
254
errors = [
293
255
errors_from_fields (exception_dict )
@@ -341,7 +303,8 @@ def add_to_many(self, activity, feeds):
341
303
342
304
"""
343
305
data = {"activity" : activity , "feeds" : feeds }
344
- return self ._make_signed_request ("post" , "feed/add_to_many/" , data = data )
306
+ token = self .create_jwt_token ("feed" , "*" , feed_id = "*" )
307
+ return self .post ("feed/add_to_many/" , token , data = data )
345
308
346
309
def follow_many (self , follows , activity_copy_limit = None ):
347
310
"""
@@ -355,9 +318,9 @@ def follow_many(self, follows, activity_copy_limit=None):
355
318
356
319
if activity_copy_limit != None :
357
320
params = dict (activity_copy_limit = activity_copy_limit )
358
-
359
- return self ._make_signed_request (
360
- "post" , " follow_many/" , params = params , data = follows
321
+ token = self . create_jwt_token ( "follower" , "*" , feed_id = "*" )
322
+ return self .post (
323
+ "follow_many/" , token , params = params , data = follows
361
324
)
362
325
363
326
def update_activities (self , activities ):
0 commit comments