Class: Uiza::UizaClient

Inherits:
Object
  • Object
show all
Defined in:
lib/uiza/uiza_client.rb

Instance Method Summary collapse

Constructor Details

#initialize(url, method, headers, params, description_link) ⇒ UizaClient

Returns a new instance of UizaClient.



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/uiza/uiza_client.rb', line 3

def initialize url, method, headers, params, description_link
  @uri = URI.parse url
  @description_link = description_link

  params ||= {}

  case method.to_s.downcase
  when "get"
    @uri.query = URI.encode_www_form params
    @request = Net::HTTP::Get.new @uri
  when "post"
    @request = Net::HTTP::Post.new @uri
    @request.body = JSON.dump params
  when "put"
    @request = Net::HTTP::Put.new @uri
    @request.body = JSON.dump params
  when "delete"
    @request = Net::HTTP::Delete.new @uri
    @request.body = JSON.dump params
  end

  @request.content_type = "application/json"
  headers.each do |key, value|
    @request[key] = value
  end
end

Instance Method Details

#execute_requestObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/uiza/uiza_client.rb', line 30

def execute_request
  @http = Net::HTTP.start @uri.host, @uri.port, use_ssl: true
  @response = @http.request @request
  @response = JSON.parse @response.body

  code = @response["code"]
  message = @response["message"]
  check_and_raise_error code, message

  data = @response["data"]
  response = JSON.parse(data.to_json, object_class: Uiza::UizaOpenStruct)

  return response unless response

  if response.is_a?(Array)
    response.each(&:define_methods)
  else
    response.define_methods
  end

  response
end