Class: HTTP_Client

Inherits:
Object
  • Object
show all
Defined in:
lib/external_api_service/http_client.rb

Instance Method Summary collapse

Instance Method Details

#get(endpoint_uri) ⇒ Object



6
7
8
9
# File 'lib/external_api_service/http_client.rb', line 6

def get(endpoint_uri)
  response = get_request(endpoint_uri)
  parse_response(response)
end

#get_request(endpoint) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/external_api_service/http_client.rb', line 11

def get_request(endpoint)
  Net::HTTP.start(endpoint.host, endpoint.port) do |client|
    retries = 5
    begin
      new_request = Net::HTTP::Get.new(endpoint)
      client.request(new_request)
    rescue Exception => ex
      retries -= 1
      retries > 0 ? retry : error_response(422, ex)
    end
  end
end

#parse_response(response) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/external_api_service/http_client.rb', line 24

def parse_response(response)
  if (response.code != "200" || response.code == nil)
    { error: response }
  else
    JSON.parse(response.body, symbolize_names: true)
  end
end