diff --git a/lib/rex/server.rb b/lib/rex/server.rb index 9568a26..4b14eeb 100644 --- a/lib/rex/server.rb +++ b/lib/rex/server.rb @@ -1,5 +1,6 @@ # frozen_string_literal: true +require_relative "server/messages" require_relative "server/message_broker" module Rex module Server diff --git a/lib/rex/server/messages.rb b/lib/rex/server/messages.rb new file mode 100644 index 0000000..f904833 --- /dev/null +++ b/lib/rex/server/messages.rb @@ -0,0 +1,73 @@ +module Rex + module Server + module Messages + AuthenticateRequest = Struct.new(:user_id) + + FetchTradesRequest = Struct.new(:user_id) + FetchOrdersRequest = Struct.new(:user_id) + CreateOrderRequest = Struct.new(:user_id, :side, :price, :quantity) + CancelOrderRequest = Struct.new(:user_id, :order_id) + FetchOrderBookRequest = Struct.new(:user_id) + + OrderBookUpdateEvent = Struct.new( + :side, + :price, + :quantity + ) + + OrderBookFetchEvent = Struct.new( + :user_id, + :side, + :price, + :quantity + ) + + OrderCancelledEvent = Struct.new( + :id, + :user_id, + :side, + :remaining_quantity, + :price + ) + + OrderFetchEvent = Struct.new( + :id, + :user_id, + :side, + :quantity, + :remaining_quantity, + :price + ) + + OrderCreatedEvent = Struct.new( + :id, + :user_id, + :side, + :quantity, + :remaining_quantity, + :price + ) + + OrderFillEvent = Struct.new( + :id, + :user_id, + :price, + :side, + :remaining_quantity + ) + + TradeEvent = Struct.new( + :id, + :price, + :quantity + ) + + TradeFetchEvent = Struct.new( + :id, + :user_id, + :price, + :quantity + ) + end + end +end