class Evervault::Http::Request

Public Class Methods

new(api_key:, base_url:, cage_run_url:, timeout:) click to toggle source
# File lib/evervault/http/request.rb, line 9
def initialize(api_key:, base_url:, cage_run_url:, timeout:)
  @api_key = api_key
  @timeout = timeout
  @base_url = base_url
  @cage_run_url = cage_run_url
end

Public Instance Methods

delete(path, params) click to toggle source
# File lib/evervault/http/request.rb, line 24
def delete(path, params)
  execute(:delete, build_url(path), params)
end
execute(method, url, params, optional_headers = {}) click to toggle source
# File lib/evervault/http/request.rb, line 37
def execute(method, url, params, optional_headers = {})
  resp = Faraday.send(method, url) do |req|
      req.body = params.nil? || params.empty? ? nil : params.to_json
      req.headers = build_headers(optional_headers)
  end
  return JSON.parse(resp.body) if resp.status >= 200 && resp.status <= 300
  Evervault::Errors::ErrorMap.raise_errors_on_failure(resp.status, resp.body)
end
get(path, params = nil) click to toggle source
# File lib/evervault/http/request.rb, line 16
def get(path, params = nil)
  execute(:get, build_url(path), params)
end
post(path, params, options: {}, cage_run: false) click to toggle source
# File lib/evervault/http/request.rb, line 28
def post(path, params, options: {}, cage_run: false)
  execute(:post, build_url(path, cage_run), params, build_cage_run_headers(options, cage_run))
end
put(path, params) click to toggle source
# File lib/evervault/http/request.rb, line 20
def put(path, params)
  execute(:put, build_url(path), params)
end

Private Instance Methods

build_cage_run_headers(options, cage_run = false) click to toggle source
# File lib/evervault/http/request.rb, line 56
        def build_cage_run_headers(options, cage_run = false)
  optional_headers = {}
  return optional_headers unless cage_run
  if options.key?(:async)
    if options[:async]
      optional_headers["x-async"] = "true"
    end
    options.delete(:async)
  end
  if options.key?(:version)
    if options[:version].is_a? Integer
      optional_headers["x-version-id"] = options[:version].to_s
    end
    options.delete(:version)
  end
  optional_headers.merge(options)
end
build_headers(optional_headers) click to toggle source
# File lib/evervault/http/request.rb, line 46
        def build_headers(optional_headers)
  optional_headers.merge({
    "AcceptEncoding": "gzip, deflate",
    "Accept": "application/json",
    "Content-Type": "application/json",
    "User-Agent": "evervault-ruby/#{VERSION}",
    "Api-Key": @api_key
  })
end
build_url(path, cage_run = false) click to toggle source
# File lib/evervault/http/request.rb, line 32
        def build_url(path, cage_run = false)
  return "#{@base_url}#{path}" unless cage_run
  "#{@cage_run_url}#{path}"
end