class MmJsonClient::JsonRpcHttp::Client

A helper client for doing JSON-RPC calls over http.

Public Class Methods

new(base_url, options = {}) click to toggle source
# File lib/mm_json_client/json_rpc_http/client.rb, line 9
def initialize(base_url, options = {})
  @http_client =
    MmJsonClient::HttpClient::Client.new(base_url, options[:endpoint],
                                         allowed_client_options(options))
end

Public Instance Methods

request(method, params = nil, id = false) click to toggle source

id defaults to false to detect if was specified. Null is a valid value according to the spec.

# File lib/mm_json_client/json_rpc_http/client.rb, line 17
def request(method, params = nil, id = false)
  http_response = @http_client.post(request_message(method, params, id))
  MmJsonClient::JsonRpcHttp::Response.new(http_response.body)
end

Private Instance Methods

allowed_client_options(options) click to toggle source
# File lib/mm_json_client/json_rpc_http/client.rb, line 34
def allowed_client_options(options)
  allowed = [:verify_ssl, :open_timeout, :timeout]
  options.select { |option| allowed.include?(option) }
end
base_request_message() click to toggle source
# File lib/mm_json_client/json_rpc_http/client.rb, line 24
def base_request_message
  { jsonrpc: '2.0' }
end
request_message(method, params, id) click to toggle source
# File lib/mm_json_client/json_rpc_http/client.rb, line 28
def request_message(method, params, id)
  msg = base_request_message.merge(method: method, params: params)
  msg[:id] = id unless id == false # Optional
  msg.to_json
end