diff --git a/app/views/api/messages/_message.json.jbuilder b/app/views/api/messages/_message.json.jbuilder index a04295d313..840ad19d02 100644 --- a/app/views/api/messages/_message.json.jbuilder +++ b/app/views/api/messages/_message.json.jbuilder @@ -6,10 +6,11 @@ json.to_display_name message.recipient.display_name json.title message.title json.sent_on message.sent_on.xmlschema +json.message_read message.message_read if current_user.id == message.to_user_id + if current_user.id == message.from_user_id json.deleted !message.from_user_visible elsif current_user.id == message.to_user_id - json.message_read message.message_read json.deleted !message.to_user_visible end diff --git a/app/views/api/messages/_message.xml.builder b/app/views/api/messages/_message.xml.builder index 64ac9e3bcc..2ab307f1ab 100644 --- a/app/views/api/messages/_message.xml.builder +++ b/app/views/api/messages/_message.xml.builder @@ -8,10 +8,11 @@ attrs = { "body_format" => message.body_format } +attrs["message_read"] = message.message_read if current_user.id == message.to_user_id + if current_user.id == message.from_user_id attrs["deleted"] = !message.from_user_visible elsif current_user.id == message.to_user_id - attrs["message_read"] = message.message_read attrs["deleted"] = !message.to_user_visible end diff --git a/test/controllers/api/messages_controller_test.rb b/test/controllers/api/messages_controller_test.rb index 806a4a505e..0857d0e100 100644 --- a/test/controllers/api/messages_controller_test.rb +++ b/test/controllers/api/messages_controller_test.rb @@ -222,6 +222,34 @@ def test_show assert_equal msg.body, jsm["body"] end + def test_show_message_to_self_read + user = create(:user) + message = create(:message, :sender => user, :recipient => user) + auth_header = bearer_authorization_header user + + get api_message_path(message), :headers => auth_header + assert_response :success + assert_equal "application/xml", response.media_type + assert_dom "message", :count => 1 do + assert_dom "> @message_read", "false" + end + end + + def test_show_message_to_self_read_json + user = create(:user) + message = create(:message, :sender => user, :recipient => user) + auth_header = bearer_authorization_header user + + get api_message_path(message, :format => "json"), :headers => auth_header + assert_response :success + assert_equal "application/json", response.media_type + js = ActiveSupport::JSON.decode(@response.body) + jsm = js["message"] + assert_not_nil jsm + assert jsm.key?("message_read") + assert_not jsm["message_read"] + end + def test_update_status recipient = create(:user) sender = create(:user)