Class: ESM::Websocket::ServerRequest

Inherits:
Object
  • Object
show all
Defined in:
lib/esm/websocket/server_request.rb

Constant Summary collapse

ALLOWLISTED_SERVER_COMMANDS =
%w[
  server_initialization
  xm8_notification
  discord_log
  discord_message_channel
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(connection:, message:) ⇒ ServerRequest

Returns a new instance of ServerRequest.



13
14
15
16
17
18
# File 'lib/esm/websocket/server_request.rb', line 13

def initialize(connection:, message:)
  @connection = connection
  @message = message
  @request = @connection.requests[message.commandID]
  @request.on_reply(connection) if @request.present?
end

Instance Method Details

#invalid?Boolean

These are normally empty responses message.returned is legacy

Returns:

  • (Boolean)


22
23
24
# File 'lib/esm/websocket/server_request.rb', line 22

def invalid?
  @message.ignore || @message.returned
end

#processObject



31
32
33
34
35
36
37
# File 'lib/esm/websocket/server_request.rb', line 31

def process
  if @request.present?
    process_command_response
  else
    process_server_command
  end
end

#remove_on_ignore?Boolean

Checks if the request should be removed on the first ignore

Returns:

  • (Boolean)


27
28
29
# File 'lib/esm/websocket/server_request.rb', line 27

def remove_on_ignore?
  @request ? @request.remove_on_ignore : false
end

#remove_requestObject

Removes the request from the queue if present



40
41
42
# File 'lib/esm/websocket/server_request.rb', line 40

def remove_request
  @connection.remove_request(@message.commandID) if @request
end