class Shoptet::Request

Public Class Methods

delete(url, headers) click to toggle source
# File lib/shoptet/request.rb, line 56
def self.delete(url, headers)
  request = Net::HTTP::Delete.new(url)
  headers.each do |key, value|
    request[key] = value
  end

  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
    handle_net_timeouts { http.request(request) }
  end

  JSON.parse(response.body)
end
get(url, headers) click to toggle source
# File lib/shoptet/request.rb, line 6
def self.get url, headers
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  http.open_timeout = 30
  http.read_timeout = 30
  http.write_timeout = 30
  http.ssl_timeout = 30

  request = Net::HTTP::Get.new(url)
  headers.each do |key, value|
    request[key] = value
  end

  response = handle_net_timeouts { http.request(request) }
  parsed_body = JSON.parse(response.body)

  unless parsed_body
    message = "Status code: #{response.code}, url: #{url}"
    fail Shoptet::EmptyResponse.new(message)
  end

  parsed_body
end
post(url, body) click to toggle source
# File lib/shoptet/request.rb, line 30
def self.post url, body
  request = Net::HTTP::Post.new(url)
  request.set_form_data(body)

  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
    handle_net_timeouts { http.request(request) }
  end

  JSON.parse(response.body)
end
post_binary(url, body, headers) click to toggle source
# File lib/shoptet/request.rb, line 41
def self.post_binary(url, body, headers)
  request = Net::HTTP::Post.new(url)
  request.body = body
  request.content_type = 'appliaction/octet-stream'
  headers.each do |key, value|
    request[key] = value
  end

  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
    handle_net_timeouts { http.request(request) }
  end

  JSON.parse(response.body)
end

Private Class Methods

handle_net_timeouts() { || ... } click to toggle source
# File lib/shoptet/request.rb, line 71
def self.handle_net_timeouts
  begin
    yield
  rescue Net::OpenTimeout
    yield
  end
end