Return the message ID when sending a message.

Our API documentation says that we do, and it seems like it could be
useful to clients, so we might as well do it.

(imported from commit c391e4952a09d41df4dc06e3dc6ee094f774822b)
This commit is contained in:
Tim Abbott 2013-08-08 13:37:40 -04:00
parent 9d6627d269
commit 7fa448cdef
2 changed files with 13 additions and 12 deletions

View File

@ -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.

View File

@ -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()