Module: ExtremeOverclockingClient::Request

Included in:
Team, User
Defined in:
lib/extreme_overclocking_client/request.rb

Constant Summary collapse

FEED_URL =
'https://folding.extremeoverclocking.com'.freeze

Instance Method Summary collapse

Instance Method Details

#request(config:, endpoint:, base_url: FEED_URL, params: {}) ⇒ Object

Raises:

  • (StandardError)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/extreme_overclocking_client/request.rb', line 13

def request(config:, endpoint:, base_url: FEED_URL, params: {})
  unless config.is_a?(ExtremeOverclockingClient::Config)
    raise ArgumentError, "Param 'config' must be an instance of ExtremeOverclockingClient::Config"
  end

  url = URI.join(base_url, endpoint)
  url.query = URI.encode_www_form(params) unless params.empty?

  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true

  request = Net::HTTP::Get.new(url.request_uri)
  request['Referer'] = config.referer
  request['User-Agent'] = config.user_agent

  response = http.request(request)

  raise StandardError, response.body unless response.code == '200'

  Hash.from_xml(response.body)
end