From 84b0cb9540faee49d22a2595547379c7333d4d29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim=20K=C3=A4chele?= Date: Sun, 18 Feb 2024 21:26:30 +0100 Subject: [PATCH] Add json message serializer Basic serializer to serialize server messages to json. --- lib/rex/server.rb | 2 ++ lib/rex/server/json_message_serializer.rb | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 lib/rex/server/json_message_serializer.rb diff --git a/lib/rex/server.rb b/lib/rex/server.rb index fb8c54f..c24891f 100644 --- a/lib/rex/server.rb +++ b/lib/rex/server.rb @@ -11,6 +11,8 @@ require_relative "server/matching_engine" require_relative "server/message_broker" require_relative "server/message_processor" require_relative "server/websocket_server" + +require_relative "server/json_message_serializer" module Rex module Server VERSION = "0.1.0" diff --git a/lib/rex/server/json_message_serializer.rb b/lib/rex/server/json_message_serializer.rb new file mode 100644 index 0000000..003e81f --- /dev/null +++ b/lib/rex/server/json_message_serializer.rb @@ -0,0 +1,22 @@ +module Rex + module Server + class JsonMessageSerializer + def serialize(obj) + obj = if obj.is_a?(Array) + { + type: "response", + name: "validation.errors", + data: obj.map(&:to_h) + } + else + { + type: "response", + name: obj.class.name.split("::").last, + data: obj.to_h + } + end + obj.to_json + end + end + end +end