class CLXRestAPI::Request

Attributes

uri[R]

Public Class Methods

new(uri, method: :get, config: CLXRestAPI.config) click to toggle source
# File lib/clx_rest_api/request.rb, line 10
def initialize(uri, method: :get, config: CLXRestAPI.config)
  @config = config
  @method = method
  @uri = URI(uri)
end

Public Instance Methods

execute(body = {}) click to toggle source
# File lib/clx_rest_api/request.rb, line 16
def execute(body = {})
  response = http.request http_request(body)
  Response.new(response)
end

Private Instance Methods

get_request(body) click to toggle source
# File lib/clx_rest_api/request.rb, line 35
def get_request(body)
  @uri.query = URI.encode_www_form(body)
  Net::HTTP::Get.new(@uri).tap do |req|
    req["Authorization"] = "Bearer #{@config.api_token}"
  end
end
http() click to toggle source
# File lib/clx_rest_api/request.rb, line 23
def http
  @http ||= Net::HTTP.new(uri.host, uri.port)
  @http.tap do |protocol|
    protocol.use_ssl = true
    protocol.verify_mode = OpenSSL::SSL::VERIFY_PEER
  end
end
http_request(body) click to toggle source
# File lib/clx_rest_api/request.rb, line 31
def http_request(body)
  send "#{@method}_request", body
end
post_request(body) click to toggle source
# File lib/clx_rest_api/request.rb, line 42
def post_request(body)
  Net::HTTP::Post.new(@uri).tap do |req|
    req["Authorization"] = "Bearer #{@config.api_token}"
    req.content_type = "application/json"
    req.body = body.to_json
  end
end