37 lines
1.3 KiB
Ruby
37 lines
1.3 KiB
Ruby
module Msf::RPC::JSON
|
|
|
|
# Represents a JSON-RPC response.
|
|
class Response
|
|
attr_reader :response
|
|
attr_reader :id
|
|
attr_reader :result
|
|
|
|
# Parse response and return a new Response instance.
|
|
# @param response [Hash] A response hash.
|
|
# @param symbolize_names [Boolean] If true, symbols are used for the names (keys) when
|
|
# processing JSON objects; otherwise, strings are used. Default: true
|
|
# @return [Response] Response object that represents the response hash.
|
|
def self.parse(response, symbolize_names: true)
|
|
id_key = symbolize_names ? :id : :id.to_s
|
|
result_key = symbolize_names ? :result : :result.to_s
|
|
|
|
id = response[id_key]
|
|
result = response[result_key]
|
|
|
|
Response.new(id: id, result: result, response: response)
|
|
end
|
|
|
|
# Instantiate a Response object.
|
|
#
|
|
# @param id [Integer, String, NilClass] It MUST be the same as the value of the
|
|
# id member in the Request Object. If there was an error in detecting the id
|
|
# in the Request object (e.g. Parse error/Invalid Request), it MUST be Null.
|
|
# @param result [Integer, String, Array, Hash, NilClass] Result of the method.
|
|
# @param response [Hash] A response hash. The default value is nil.
|
|
def initialize(id:, result:, response: nil)
|
|
@id = id
|
|
@result = result
|
|
@response = response
|
|
end
|
|
end
|
|
end |