class Sonycam::API

Public Class Methods

new(api_url) click to toggle source
# File lib/sonycam/api.rb, line 6
def initialize api_url
  @uri = URI(api_url)
  @http = Net::HTTP.start(@uri.host, @uri.port)
end

Public Instance Methods

request(method, *params, **options) click to toggle source

id property of JSON-RPC seems to be totally useless over HTTP since it's request-response pattern.

# File lib/sonycam/api.rb, line 12
def request method, *params, **options
  json = {method: method, params: params, id: 1, version: '1.0'}.merge!(options).to_json
  ret = JSON.parse(@http.request_post(@uri.path, json).body)
  if ret['error']
    error_code, error_message = ret['error']
    raise Sonycam::Error.make(error_code), error_message
  else
    ret['result']
  end
end