Skip to content

Commit f1a8470

Browse files
committed
api: Encoded certain api endpoint parameters.
Rectified the parameters in certain api endpoints to , take up default parameters rather than a dictionary. Affected endpoints : GET get_profile POST update_presence GET get_users GET get_members GET list_subscriptions PATCH mute_topic POST render_message POST create_user PUT update_storage GET get_storage POST set_typing_status As discussed within zulip/zulip#16698
1 parent f2d80c6 commit f1a8470

File tree

1 file changed

+53
-23
lines changed

1 file changed

+53
-23
lines changed

zulip/zulip/__init__.py

+53-23
Original file line numberDiff line numberDiff line change
@@ -1072,17 +1072,20 @@ def deregister(self, queue_id: str, timeout: Optional[float] = None) -> Dict[str
10721072
timeout=timeout,
10731073
)
10741074

1075-
def get_profile(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1075+
def get_profile(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
10761076
'''
10771077
Example usage:
10781078
10791079
>>> client.get_profile()
10801080
{u'user_id': 5, u'full_name': u'Iago', u'short_name': u'iago', ...}
10811081
'''
1082+
if request is not None:
1083+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1084+
10821085
return self.call_endpoint(
10831086
url='users/me',
10841087
method='GET',
1085-
request=request,
1088+
request=request or kwargs,
10861089
)
10871090

10881091
def get_user_presence(self, email: str) -> Dict[str, Any]:
@@ -1109,21 +1112,24 @@ def get_realm_presence(self) -> Dict[str, Any]:
11091112
method='GET',
11101113
)
11111114

1112-
def update_presence(self, request: Dict[str, Any]) -> Dict[str, Any]:
1115+
def update_presence(self, request: Dict[str, Any] = None, **kwargs: Any) -> Dict[str, Any]:
11131116
'''
11141117
Example usage:
11151118
11161119
>>> client.update_presence({
1117-
status='active',
1120+
:='active',
11181121
ping_only=False,
11191122
new_user_input=False,
11201123
})
11211124
{'result': 'success', 'server_timestamp': 1333649180.7073195, 'presences': {'[email protected]': { ... }}, 'msg': ''}
11221125
'''
1126+
if request is not None:
1127+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1128+
11231129
return self.call_endpoint(
11241130
url='users/me/presence',
11251131
method='POST',
1126-
request=request,
1132+
request=request or kwargs,
11271133
)
11281134

11291135
def get_streams(self, **request: Any) -> Dict[str, Any]:
@@ -1228,22 +1234,25 @@ def update_user_by_id(self, user_id: int, **request: Any) -> Dict[str, Any]:
12281234
request=request
12291235
)
12301236

1231-
def get_users(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1237+
def get_users(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
12321238
'''
12331239
See examples/list-users for example usage.
12341240
'''
1241+
if request is not None:
1242+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1243+
12351244
return self.call_endpoint(
12361245
url='users',
12371246
method='GET',
1238-
request=request,
1247+
request=request or kwargs,
12391248
)
12401249

1241-
def get_members(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1250+
def get_members(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
12421251
# This exists for backwards-compatibility; we renamed this
12431252
# function get_users for consistency with the rest of the API.
12441253
# Later, we may want to add a warning for clients using this
12451254
# legacy name.
1246-
return self.get_users(request=request)
1255+
return self.get_users(request=request, **kwargs)
12471256

12481257
def get_alert_words(self) -> Dict[str, Any]:
12491258
'''
@@ -1278,14 +1287,17 @@ def remove_alert_words(self, alert_words: List[str]) -> Dict[str, Any]:
12781287
}
12791288
)
12801289

1281-
def list_subscriptions(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1290+
def list_subscriptions(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
12821291
'''
12831292
See examples/list-subscriptions for example usage.
12841293
'''
1294+
if request is not None:
1295+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1296+
12851297
return self.call_endpoint(
12861298
url='users/me/subscriptions',
12871299
method='GET',
1288-
request=request,
1300+
request=request or kwargs,
12891301
)
12901302

12911303
def add_subscriptions(self, streams: Iterable[Dict[str, Any]], **kwargs: Any) -> Dict[str, Any]:
@@ -1329,14 +1341,17 @@ def get_subscription_status(self, user_id: int, stream_id: int) -> Dict[str, Any
13291341
method='GET',
13301342
)
13311343

1332-
def mute_topic(self, request: Dict[str, Any]) -> Dict[str, Any]:
1344+
def mute_topic(self, request: Dict[str, Any] = None, **kwargs: Any) -> Dict[str, Any]:
13331345
'''
13341346
See examples/mute-topic for example usage.
13351347
'''
1348+
if request is not None:
1349+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1350+
13361351
return self.call_endpoint(
13371352
url='users/me/subscriptions/muted_topics',
13381353
method='PATCH',
1339-
request=request
1354+
request=request or kwargs,
13401355
)
13411356

13421357
def update_subscription_settings(self, subscription_data: List[Dict[str, Any]]) -> Dict[str, Any]:
@@ -1486,44 +1501,53 @@ def get_subscribers(self, **request: Any) -> Dict[str, Any]:
14861501
request=request,
14871502
)
14881503

1489-
def render_message(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1504+
def render_message(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
14901505
'''
14911506
Example usage:
14921507
14931508
>>> client.render_message(request=dict(content='foo **bar**'))
14941509
{u'msg': u'', u'rendered': u'<p>foo <strong>bar</strong></p>', u'result': u'success'}
14951510
'''
1511+
if request is not None:
1512+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1513+
14961514
return self.call_endpoint(
14971515
url='messages/render',
14981516
method='POST',
1499-
request=request,
1517+
request=request or kwargs,
15001518
)
15011519

1502-
def create_user(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1520+
def create_user(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
15031521
'''
15041522
See examples/create-user for example usage.
15051523
'''
1524+
if request is not None:
1525+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1526+
15061527
return self.call_endpoint(
15071528
method='POST',
15081529
url='users',
1509-
request=request,
1530+
request=request or kwargs,
15101531
)
15111532

1512-
def update_storage(self, request: Dict[str, Any]) -> Dict[str, Any]:
1533+
def update_storage(self, request: Dict[str, Any] = None, **kwargs: Any) -> Dict[str, Any]:
15131534
'''
15141535
Example usage:
15151536
15161537
>>> client.update_storage({'storage': {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"}})
15171538
>>> client.get_storage({'keys': ["entry 1", "entry 3"]})
15181539
{'result': 'success', 'storage': {'entry 1': 'value 1', 'entry 3': 'value 3'}, 'msg': ''}
15191540
'''
1541+
if request is not None:
1542+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1543+
15201544
return self.call_endpoint(
15211545
url='bot_storage',
15221546
method='PUT',
1523-
request=request,
1547+
request=request or kwargs,
15241548
)
15251549

1526-
def get_storage(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
1550+
def get_storage(self, request: Optional[Dict[str, Any]] = None, **kwargs: Any) -> Dict[str, Any]:
15271551
'''
15281552
Example usage:
15291553
@@ -1533,13 +1557,16 @@ def get_storage(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any
15331557
>>> client.get_storage({'keys': ["entry 1", "entry 3"]})
15341558
{'result': 'success', 'storage': {'entry 1': 'value 1', 'entry 3': 'value 3'}, 'msg': ''}
15351559
'''
1560+
if request is not None:
1561+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1562+
15361563
return self.call_endpoint(
15371564
url='bot_storage',
15381565
method='GET',
1539-
request=request,
1566+
request=request or kwargs,
15401567
)
15411568

1542-
def set_typing_status(self, request: Dict[str, Any]) -> Dict[str, Any]:
1569+
def set_typing_status(self, request: Dict[str, Any] = None, **kwargs: Any) -> Dict[str, Any]:
15431570
'''
15441571
Example usage:
15451572
>>> client.set_typing_status({
@@ -1548,10 +1575,13 @@ def set_typing_status(self, request: Dict[str, Any]) -> Dict[str, Any]:
15481575
})
15491576
{'result': 'success', 'msg': ''}
15501577
'''
1578+
if request is not None:
1579+
logging.warning('Passing parameters as a dictionary will be deprecated in future versions.')
1580+
15511581
return self.call_endpoint(
15521582
url='typing',
15531583
method='POST',
1554-
request=request
1584+
request=request or kwargs,
15551585
)
15561586

15571587
def move_topic(

0 commit comments

Comments
 (0)