diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index 4524fbda8f..bb667bc33e 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -208,10 +208,10 @@ def log_message(message): # Helper function. Defaults here are overriden by those set in do_send_messages def do_send_message(message, rendered_content = None, no_log = False, stream = None): - do_send_messages([{'message': message, - 'rendered_content': rendered_content, - 'no_log': no_log, - 'stream': stream}]) + return do_send_messages([{'message': message, + 'rendered_content': rendered_content, + 'no_log': no_log, + 'stream': stream}])[0] def do_send_messages(messages): # Filter out messages which didn't pass internal_prep_message properly @@ -303,6 +303,8 @@ def do_send_messages(messages): data['stream_name'] = message['stream'].name tornado_callbacks.send_notification(data) + return [message['message'].id for message in messages] + def create_stream_if_needed(realm, stream_name, invite_only=False): (stream, created) = Stream.objects.get_or_create( realm=realm, name__iexact=stream_name, @@ -377,8 +379,7 @@ def check_send_message(*args, **kwargs): if(type(message) != dict): assert isinstance(message, basestring) return message - do_send_messages([message]) - return None + return do_send_messages([message])[0] # check_message: # Returns message ready for sending with do_send_message on success or the error message (string) on error. diff --git a/zerver/views.py b/zerver/views.py index 7b675bd99d..a3aa23a9bd 100644 --- a/zerver/views.py +++ b/zerver/views.py @@ -1210,9 +1210,9 @@ def send_message_backend(request, user_profile, subject_name, message_content, forged=forged, forged_timestamp = request.POST.get('time'), forwarder_user_profile=user_profile, realm=realm) - if ret is not None: + if isinstance(ret, basestring): return json_error(ret) - return json_success() + return json_success({"id": ret}) @has_request_variables def render_message_backend(request, user_profile, content=REQ): @@ -1795,7 +1795,7 @@ def api_jira_webhook(request): subject = elide_subject(subject) ret = check_send_message(user_profile, get_client("API"), "stream", [stream], subject, content) - if ret is not None: + if isinstance(ret, basestring): return json_error(ret) return json_success() @@ -1872,7 +1872,7 @@ def api_pivotal_webhook(request): subject = elide_subject(subject) ret = check_send_message(user_profile, get_client("API"), "stream", [stream], subject, content) - if ret is not None: + if isinstance(ret, basestring): return json_error(ret) return json_success() @@ -1924,7 +1924,7 @@ def api_beanstalk_webhook(request, user_profile, subject = elide_subject(subject) ret = check_send_message(user_profile, get_client("API"), "stream", ["commits"], subject, content) - if ret is not None: + if isinstance(ret, basestring): return json_error(ret) return json_success() @@ -1963,7 +1963,7 @@ def api_newrelic_webhook(request, alert=REQ(converter=json_to_dict, default=None subject = elide_subject(subject) ret = check_send_message(user_profile, get_client("API"), "stream", [stream], subject, content) - if ret is not None: + if isinstance(ret, basestring): return json_error(ret) return json_success()