Skip to content

Commit 8b6cf17

Browse files
committed
add some validation for foreign_id_time param
1 parent 2a60854 commit 8b6cf17

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

stream/client.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,11 @@
55

66
import jwt
77
import requests
8-
from requests.adapters import HTTPAdapter
98
from stream.serializer import _datetime_encoder
109

1110
from stream import exceptions, serializer
12-
from stream.httpsig.requests_auth import HTTPSignatureAuth
1311
from stream.signing import sign
14-
from stream.utils import validate_feed_slug, validate_user_id
12+
from stream.utils import validate_feed_slug, validate_user_id, validate_foreign_id_time
1513
from stream.httpsig.requests_auth import HTTPSignatureAuth
1614
from requests import Request
1715

@@ -336,6 +334,7 @@ def get_activities(self, ids=None, foreign_id_time=None):
336334
query_params['ids'] = ','.join(ids)
337335

338336
if foreign_id_time is not None:
337+
validate_foreign_id_time(foreign_id_time)
339338
foreign_ids, timestamps = zip(*foreign_id_time)
340339
timestamps = map(_datetime_encoder, timestamps)
341340
query_params['foreign_ids'] = ','.join(foreign_ids)

stream/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,14 @@ def validate_user_id(user_id):
4343
raise ValueError(msg % user_id)
4444
return user_id
4545

46+
47+
def validate_foreign_id_time(foreign_id_time):
48+
if not isinstance(foreign_id_time, (list, tuple)):
49+
raise ValueError('foreign_id_time should be a list of tuples')
50+
51+
for v in foreign_id_time:
52+
if not isinstance(v, (list, tuple)):
53+
raise ValueError('foreign_id_time elements should be lists or tuples')
54+
55+
if len(v) != 2:
56+
raise ValueError('foreign_id_time elements should have two elements')

0 commit comments

Comments
 (0)