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