diff --git a/zerver/views/__init__.py b/zerver/views/__init__.py index a2f6e095c6..1135579c26 100644 --- a/zerver/views/__init__.py +++ b/zerver/views/__init__.py @@ -31,7 +31,6 @@ from zerver.lib.actions import do_change_password, do_change_full_name, do_chang do_set_realm_invite_required, do_set_realm_invite_by_admins_only, \ get_default_subs, do_deactivate_user, do_reactivate_user, \ user_email_is_unique, do_invite_users, do_refer_friend, compute_mit_user_fullname, \ - do_add_alert_words, do_remove_alert_words, do_set_alert_words, \ do_set_muted_topics, clear_followup_emails_queue, do_change_default_all_public_streams, \ do_change_default_events_register_stream, do_change_default_sending_stream, \ do_regenerate_api_key, do_update_pointer, do_change_avatar_source, realm_user_count @@ -42,7 +41,6 @@ from zerver.forms import RegistrationForm, HomepageForm, ToSForm, \ from django.views.decorators.csrf import csrf_exempt from django_auth_ldap.backend import LDAPBackend, _LDAPUser from zerver.lib import bugdown -from zerver.lib.alert_words import user_alert_words from zerver.lib.validator import check_string, check_list, check_bool from zerver.decorator import require_post, authenticated_json_post_view, \ has_request_variables, authenticated_json_view, to_non_negative_int, \ @@ -1481,34 +1479,6 @@ def json_refer_friend(request, user_profile, email=REQ): return json_success() -def list_alert_words(request, user_profile): - return json_success({'alert_words': user_alert_words(user_profile)}) - -@authenticated_json_post_view -@has_request_variables -def json_set_alert_words(request, user_profile, - alert_words=REQ(validator=check_list(check_string), default=[])): - do_set_alert_words(user_profile, alert_words) - return json_success() - -@has_request_variables -def set_alert_words(request, user_profile, - alert_words=REQ(validator=check_list(check_string), default=[])): - do_set_alert_words(user_profile, alert_words) - return json_success() - -@has_request_variables -def add_alert_words(request, user_profile, - alert_words=REQ(validator=check_list(check_string), default=[])): - do_add_alert_words(user_profile, alert_words) - return json_success() - -@has_request_variables -def remove_alert_words(request, user_profile, - alert_words=REQ(validator=check_list(check_string), default=[])): - do_remove_alert_words(user_profile, alert_words) - return json_success() - @authenticated_json_post_view @has_request_variables def json_set_muted_topics(request, user_profile, diff --git a/zerver/views/alert_words.py b/zerver/views/alert_words.py new file mode 100644 index 0000000000..012fd4271f --- /dev/null +++ b/zerver/views/alert_words.py @@ -0,0 +1,41 @@ +from __future__ import absolute_import + +from django.views.decorators.csrf import csrf_exempt + +from zerver.decorator import authenticated_json_post_view, has_request_variables, REQ +from zerver.lib.response import json_success +from zerver.lib.validator import check_list, check_string + +from zerver.lib.actions import do_add_alert_words, do_remove_alert_words, do_set_alert_words +from zerver.lib.alert_words import user_alert_words + +from zerver.lib.rest import rest_dispatch as _rest_dispatch +rest_dispatch = csrf_exempt((lambda request, *args, **kwargs: _rest_dispatch(request, globals(), *args, **kwargs))) + +def list_alert_words(request, user_profile): + return json_success({'alert_words': user_alert_words(user_profile)}) + +@authenticated_json_post_view +@has_request_variables +def json_set_alert_words(request, user_profile, + alert_words=REQ(validator=check_list(check_string), default=[])): + do_set_alert_words(user_profile, alert_words) + return json_success() + +@has_request_variables +def set_alert_words(request, user_profile, + alert_words=REQ(validator=check_list(check_string), default=[])): + do_set_alert_words(user_profile, alert_words) + return json_success() + +@has_request_variables +def add_alert_words(request, user_profile, + alert_words=REQ(validator=check_list(check_string), default=[])): + do_add_alert_words(user_profile, alert_words) + return json_success() + +@has_request_variables +def remove_alert_words(request, user_profile, + alert_words=REQ(validator=check_list(check_string), default=[])): + do_remove_alert_words(user_profile, alert_words) + return json_success() diff --git a/zproject/urls.py b/zproject/urls.py index 33acf710c1..1a47aac838 100644 --- a/zproject/urls.py +++ b/zproject/urls.py @@ -139,7 +139,7 @@ urlpatterns += patterns('zerver.views', url(r'^json/update_message$', 'messages.json_update_message'), url(r'^json/fetch_raw_message$', 'messages.json_fetch_raw_message'), url(r'^json/refer_friend$', 'json_refer_friend'), - url(r'^json/set_alert_words$', 'json_set_alert_words'), + url(r'^json/set_alert_words$', 'alert_words.json_set_alert_words'), url(r'^json/set_muted_topics$', 'json_set_muted_topics'), url(r'^json/set_avatar$', 'user_settings.json_set_avatar'), url(r'^json/time_setting$', 'user_settings.json_time_setting'), @@ -184,11 +184,6 @@ v1_api_and_json_patterns = patterns('zerver.views', url(r'^users/me/pointer$', 'rest_dispatch', {'GET': 'get_pointer_backend', 'PUT': 'update_pointer_backend'}), - url(r'^users/me/alert_words$', 'rest_dispatch', - {'GET': 'list_alert_words', - 'PUT': 'set_alert_words', - 'PATCH': 'add_alert_words', - 'DELETE': 'remove_alert_words'}), url(r'^realm$', 'rest_dispatch', {'PATCH': 'update_realm'}), url(r'^users/me/presence$', 'rest_dispatch', @@ -231,6 +226,13 @@ v1_api_and_json_patterns = patterns('zerver.views', url(r'^messages/flags$', 'rest_dispatch', {'POST': 'update_message_flags'}), +) + patterns('zerver.views.alert_words', + url(r'^users/me/alert_words$', 'rest_dispatch', + {'GET': 'list_alert_words', + 'PUT': 'set_alert_words', + 'PATCH': 'add_alert_words', + 'DELETE': 'remove_alert_words'}), + ) + patterns('zerver.views.user_settings', url(r'^users/me/api_key/regenerate$', 'rest_dispatch', {'POST': 'regenerate_api_key'}),