Sha256: 08486a42f42581e5838297d4092061a4947a03168779c08c40caccb6d457cb67
Contents?: true
Size: 1.61 KB
Versions: 1
Compression:
Stored size: 1.61 KB
Contents
require 'faraday' module Onfleet def self.request(config, method, path, body = nil, headers = {}) response = nil headers['Content-Type'] = 'application/json' headers['User-Agent'] = "#{config.name}-#{config.version}" request = Faraday.new url = "#{config.base_url}/#{path}" begin request.set_basic_auth(config.api_key, config.api_key) response = request.run_request(method, url, body, headers) handle_api_error(response) rescue Faraday::Response::RaiseError => e raise HttpError, "Received the following error when making HTTP request: #{e}" end response end def self.validate_authentication(base_url, api_key) body = nil headers = nil method = 'get'.to_sym success = false request = Faraday.new url = "#{base_url}/auth/test" begin request.set_basic_auth(api_key, api_key) response = request.run_request(method, url, body, headers) handle_api_error(response) if response.status == 200 success = true end rescue Faraday::Response::RaiseError => e raise HttpError, "Received the following error when running auth test: #{e}" end success end def self.handle_api_error(response) if response.status == 401 || response.status == 403 raise PermissionError, "status: #{response.status}, message: #{response.body}" elsif response.status >= 400 && response.status < 500 raise HttpError, "status: #{response.status}, message: #{response.body}" elsif response.status >= 500 raise ServiceError, "status: #{response.status}, message: #{response.body}" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ruby-onfleet-1.0.1 | lib/utils.rb |