mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	Implement API for default stream groups.
This commit is contained in:
		@@ -18,6 +18,8 @@ from zerver.lib.actions import bulk_remove_subscriptions, \
 | 
			
		||||
    do_deactivate_stream, do_change_stream_invite_only, do_add_default_stream, \
 | 
			
		||||
    do_change_stream_description, do_get_streams, \
 | 
			
		||||
    do_remove_default_stream, get_topic_history_for_stream, \
 | 
			
		||||
    do_create_default_stream_group, do_add_streams_to_default_stream_group, \
 | 
			
		||||
    do_remove_streams_from_default_stream_group, do_remove_default_stream_group, \
 | 
			
		||||
    prep_stream_welcome_message
 | 
			
		||||
from zerver.lib.response import json_success, json_error, json_response
 | 
			
		||||
from zerver.lib.streams import access_stream_by_id, access_stream_by_name, \
 | 
			
		||||
@@ -72,6 +74,42 @@ def add_default_stream(request, user_profile, stream_name=REQ()):
 | 
			
		||||
    do_add_default_stream(stream)
 | 
			
		||||
    return json_success()
 | 
			
		||||
 | 
			
		||||
@require_realm_admin
 | 
			
		||||
@has_request_variables
 | 
			
		||||
def create_default_stream_group(request: HttpRequest, user_profile: UserProfile,
 | 
			
		||||
                                group_name: Text=REQ(),
 | 
			
		||||
                                stream_names: List[Text]=REQ(validator=check_list(check_string))) -> None:
 | 
			
		||||
    streams = []
 | 
			
		||||
    for stream_name in stream_names:
 | 
			
		||||
        (stream, recipient, sub) = access_stream_by_name(user_profile, stream_name)
 | 
			
		||||
        streams.append(stream)
 | 
			
		||||
    do_create_default_stream_group(user_profile.realm, group_name, streams)
 | 
			
		||||
    return json_success()
 | 
			
		||||
 | 
			
		||||
@require_realm_admin
 | 
			
		||||
@has_request_variables
 | 
			
		||||
def update_default_stream_group(request: HttpRequest, user_profile: UserProfile,
 | 
			
		||||
                                group_name: Text=REQ(), op: Text=REQ(),
 | 
			
		||||
                                stream_names: List[Text]=REQ(validator=check_list(check_string))) -> None:
 | 
			
		||||
    streams = []
 | 
			
		||||
    for stream_name in stream_names:
 | 
			
		||||
        (stream, recipient, sub) = access_stream_by_name(user_profile, stream_name)
 | 
			
		||||
        streams.append(stream)
 | 
			
		||||
 | 
			
		||||
    if op == 'add':
 | 
			
		||||
        do_add_streams_to_default_stream_group(user_profile.realm, group_name, streams)
 | 
			
		||||
    elif op == 'remove':
 | 
			
		||||
        do_remove_streams_from_default_stream_group(user_profile.realm, group_name, streams)
 | 
			
		||||
    else:
 | 
			
		||||
        return json_error(_('Nothing to do. Specify at least one of "add" or "remove".'))
 | 
			
		||||
    return json_success()
 | 
			
		||||
 | 
			
		||||
@require_realm_admin
 | 
			
		||||
@has_request_variables
 | 
			
		||||
def remove_default_stream_group(request: HttpRequest, user_profile: UserProfile, group_name: Text=REQ()) -> None:
 | 
			
		||||
    do_remove_default_stream_group(user_profile.realm, group_name)
 | 
			
		||||
    return json_success()
 | 
			
		||||
 | 
			
		||||
@require_realm_admin
 | 
			
		||||
@has_request_variables
 | 
			
		||||
def remove_default_stream(request, user_profile, stream_name=REQ()):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user