[manual] API add_subscriptions: Change arguments to support options.

Since in the future we might want requests to add subscriptions to
include things like colors, in_home_view, etc., we're changing the
data format for the add_subscriptions API call to pass each stream as
a dictionary, giving a convenient place to put any added options.

The manual step required here is updating the API version in AFS
available for use with the zephyr_mirror.py system.

(imported from commit 364960cca582a0658f0d334668822045c001b92c)
This commit is contained in:
Tim Abbott
2013-06-24 15:32:56 -04:00
parent 238f4a6362
commit 1ec0ee0fd6
5 changed files with 12 additions and 9 deletions

View File

@@ -1255,8 +1255,10 @@ def add_subscriptions_backend(request, user_profile,
principals = REQ('principals', json_to_list, default=None),):
stream_names = []
for stream_name in streams_raw:
stream_name = stream_name.strip()
for stream in streams_raw:
if not isinstance(stream, dict):
return json_error("Malformed request")
stream_name = stream["name"].strip()
if len(stream_name) > Stream.MAX_NAME_LENGTH:
return json_error("Stream name (%s) too long." % (stream_name,))
if not valid_stream_name(stream_name):
@@ -1268,7 +1270,7 @@ def add_subscriptions_backend(request, user_profile,
else:
subscribers = [user_profile]
streams = list_to_streams(streams_raw, user_profile, autocreate=True, invite_only=invite_only)
streams = list_to_streams(stream_names, user_profile, autocreate=True, invite_only=invite_only)
private_streams = {}
result = dict(subscribed=[], already_subscribed=[])