Sha256: fc0243cc102ef9f95edcef08c0218babbee6f46a9cfdb9388c98ce2f927b6afd
Contents?: true
Size: 1.45 KB
Versions: 1
Compression:
Stored size: 1.45 KB
Contents
# frozen_string_literal: true require 'faraday' require 'json' require_relative '../version' require_relative '../errors/legacy_error_map' module Evervault module Http class Request attr_reader :config def initialize(config:) @config = config end def execute(method, url, body = nil, basic_auth = false, error_map = Evervault::Errors::LegacyErrorMap) resp = faraday(basic_auth).public_send(method, url) do |req, _url| req.body = body.nil? || body.empty? ? nil : body.to_json req.headers = build_headers(basic_auth) req.options.timeout = config.request_timeout end return resp if resp.status >= 200 && resp.status <= 300 error_map.raise_errors_on_failure(resp.status, resp.body, resp.headers) end private def faraday(basic_auth = false) Faraday.new do |conn| conn.request :authorization, :basic, config.app_id, config.api_key if basic_auth end end def build_headers(basic_auth = false) headers = { "AcceptEncoding": 'gzip, deflate', "Accept": 'application/json', "Content-Type": 'application/json', "User-Agent": "evervault-ruby/#{VERSION}" } unless basic_auth headers = headers.merge({ "Api-Key": config.api_key }) end headers end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
evervault-3.0.1 | lib/evervault/http/request.rb |