Class: Rik::API

Inherits:
Object
  • Object
show all
Defined in:
lib/rik/api.rb

Direct Known Subclasses

Client

Defined Under Namespace

Classes: Error

Constant Summary collapse

VALID_OPTIONS_KEYS =
[
:apikey,
:login,
:password].freeze
BASE_URI =
'http://72.5.78.64/api/jsonrpc'.freeze

Instance Method Summary collapse

Constructor Details

#initializeAPI

Returns a new instance of API.



28
29
30
31
# File 'lib/rik/api.rb', line 28

def initialize
  @uri = URI.parse(BASE_URI)
  reset
end

Instance Method Details

#call(method, *params) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/rik/api.rb', line 33

def call(method, *params)
  body = {
    :method => method,
    :params => params || []
  }.to_json
  
  http = Net::HTTP.new(@uri.host, @uri.port)
  request = Net::HTTP::Post.new("#{@uri.request_uri}?apikey=#{@apikey}")
  
  request.body = body
  response = http.request(request)
  answer = JSON.parse(response.body)
  
  if answer[0] == nil
    raise Error.new(answer['fault'], answer['faultCode']),
      answer['faultString']
  end
  
  answer[0]
end

#configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Rik::API)

    the object that the method was called on



54
55
56
# File 'lib/rik/api.rb', line 54

def configure
  yield self
end

#resetObject



58
59
60
61
62
# File 'lib/rik/api.rb', line 58

def reset
  @apikey = '94e147c9aff4392f'
  @login = nil
  @password = nil
end