class TerraformDevKit::Request

Public Class Methods

new(url, query_strings: [], headers: {}) click to toggle source
# File lib/TerraformDevKit/request.rb, line 6
def initialize(url, query_strings: [], headers: {})
  @url = url
  @query_strings = query_strings
  @headers = headers
end

Public Instance Methods

execute(raise_on_codes: []) click to toggle source
# File lib/TerraformDevKit/request.rb, line 12
def execute(raise_on_codes: [])
  url = URI.parse(@url)
  url.query = URI.encode_www_form(@query_strings) unless @query_strings.empty?
  puts "Fetching #{url}"
  options = {
    redirect: false,
    ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE
  }
  options.merge!(@headers)
  URI.open(url, options)
rescue OpenURI::HTTPError => error
  response = error.io
  raise if raise_on_codes.include?(response.status[0])
  response
end