Sha256: 515a4cc853cd2b6baeca9cff21b03bb9b34ec8347954bcaf44f04a00caa2d16c
Contents?: true
Size: 1.51 KB
Versions: 6
Compression:
Stored size: 1.51 KB
Contents
# frozen_string_literal: true require "rest-client" require "json" require_relative "../response/api_error" require_relative "../error/api_error" module ONEAccess module API class Base class << self def send_get(method, params = {}) RestClient.get(api_url(method), { params: params }.merge(auth_headers)) rescue RestClient::Exception => e raise create_api_error(e) end def resource_api_path const_get("RESOURCE_API_PATH") rescue nil end def api_url(method = nil) url = "#{Configuration.base_url}#{resource_api_path}" return url if method.nil? "#{url}/#{method}" end protected def api_path(path) raise "API path has already been set" if resource_api_path self.resource_api_path = path end private def create_api_error(error) api_error_data = Response::APIError.new Response::Representer::APIError.new(api_error_data).from_json(error.http_body) Error::APIError.new(error.http_code, api_error_data.api_status_code, api_error_data.api_status_message) end def resource_api_path=(path) const_set("RESOURCE_API_PATH", path) end def auth_headers { "X-One-Access-Api-Key" => Configuration.api_key, "Authorization" => "X-One-Access-Master-Api-Key #{Configuration.master_api_key}" } end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems