diff --git a/frontend_tests/node_tests/submessage.js b/frontend_tests/node_tests/submessage.js index 3a17f9b7c0..f9164a6fc1 100644 --- a/frontend_tests/node_tests/submessage.js +++ b/frontend_tests/node_tests/submessage.js @@ -67,7 +67,7 @@ run_test('handle_event', () => { msg_type: 'widget', sender_id: 99, message_id: message.id, - data: 'some_data', + content: '"some_data"', }; var args; diff --git a/static/js/server_events_dispatch.js b/static/js/server_events_dispatch.js index 8b663fc168..9dacd1a011 100644 --- a/static/js/server_events_dispatch.js +++ b/static/js/server_events_dispatch.js @@ -258,7 +258,7 @@ exports.dispatch_normal_event = function dispatch_normal_event(event) { sender_id: event.sender_id, msg_type: event.msg_type, message_id: event.message_id, - data: event.data, + content: event.content, }); break; diff --git a/static/js/submessage.js b/static/js/submessage.js index 4d0de9eb9d..4b39890d01 100644 --- a/static/js/submessage.js +++ b/static/js/submessage.js @@ -91,10 +91,19 @@ exports.handle_event = function (event) { return; } + var data; + + try { + data = JSON.parse(event.content); + } catch (err) { + blueslip.error('server sent us invalid json in handle_event: ' + event.content); + return; + } + widgetize.handle_event({ sender_id: event.sender_id, message_id: event.message_id, - data: event.data, + data: data, }); }; diff --git a/zerver/lib/actions.py b/zerver/lib/actions.py index b501b21033..a7fc13b395 100644 --- a/zerver/lib/actions.py +++ b/zerver/lib/actions.py @@ -1440,7 +1440,6 @@ def do_add_submessage(sender_id: int, message_id: int, msg_type: str, content: str, - data: Any, ) -> None: submessage = SubMessage( sender_id=sender_id, @@ -1455,7 +1454,7 @@ def do_add_submessage(sender_id: int, msg_type=msg_type, message_id=message_id, sender_id=sender_id, - data=data, + content=content, ) ums = UserMessage.objects.filter(message_id=message_id) target_user_ids = [um.user_profile_id for um in ums] diff --git a/zerver/tests/test_events.py b/zerver/tests/test_events.py index d5a79e42cd..d91217166a 100644 --- a/zerver/tests/test_events.py +++ b/zerver/tests/test_events.py @@ -874,7 +874,7 @@ class EventsRegisterTest(ZulipTestCase): ('message_id', check_int), ('sender_id', check_int), ('msg_type', check_string), - ('data', check_string), + ('content', check_string), ]) cordelia = self.example_user('cordelia') @@ -889,7 +889,6 @@ class EventsRegisterTest(ZulipTestCase): message_id=message_id, msg_type='whatever', content='"stuff"', - data='stuff', ), state_change_expected=False, ) diff --git a/zerver/tests/test_submessage.py b/zerver/tests/test_submessage.py index 86b95b42b7..fd4a6864ac 100644 --- a/zerver/tests/test_submessage.py +++ b/zerver/tests/test_submessage.py @@ -127,10 +127,7 @@ class TestBasics(ZulipTestCase): expected_data = dict( message_id=message_id, - data=dict( - name='alice', - salary=20, - ), + content=payload['content'], msg_type='whatever', sender_id=cordelia.id, type='submessage', diff --git a/zerver/views/submessage.py b/zerver/views/submessage.py index cdf420642e..7ea127bceb 100644 --- a/zerver/views/submessage.py +++ b/zerver/views/submessage.py @@ -32,7 +32,7 @@ def process_submessage(request: HttpRequest, return json_error(msg) try: - data = ujson.loads(content) + ujson.loads(content) except Exception: return json_error(_("Invalid json for submessage")) @@ -41,6 +41,5 @@ def process_submessage(request: HttpRequest, message_id=message.id, msg_type=msg_type, content=content, - data=data, ) return json_success()