Sha256: 5c23dab3c416ca0ddef98301ff30b6456a613a25ae2792cc36baa8dea9b0fc81
Contents?: true
Size: 1.7 KB
Versions: 2
Compression:
Stored size: 1.7 KB
Contents
module Eligible class APIResource < EligibleObject def self.class_name name.split('::').last end def self.api_url(base, params = nil, param_id = nil) if params.nil? "/#{base}" else id = Util.value(params, param_id) "/#{base}/#{id}" end end def self.url if self == APIResource fail NotImplementedError, 'APIResource is an abstract class. You should perform actions on its subclasses (Plan, Service, etc.)' end "/#{CGI.escape(class_name.downcase)}/" end def self.require_param(value, name) fail ArgumentError, "#{name} of the #{class_name} is required" if value.nil? || (value.is_a?(String) && value.empty?) end def self.required_param_validation(params:, required_params:) return if required_params.nil? || !required_params.is_a?(Array) required_params.each do |required_param_name| required_param = Util.value(params, required_param_name) require_param(required_param, required_param_name) end end def self.send_request(method, url, params, opts) headers = opts.clone client_secret = headers.delete(:client_secret) api_key = headers.delete(:api_key) api_key = client_secret unless client_secret.nil? required_param_validation(params: params, required_params: headers.delete(:required_params)) # Here rest_api_version is related to New REST API Endpoints params = self.const_defined?(:REST_API_VERSION) ? params.merge(rest_api_version: self::REST_API_VERSION) : params response, api_key = Eligible.request(method, url, api_key, params, headers) Util.convert_to_eligible_object(response, api_key) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
eligible-3.0.0.beta3 | lib/eligible/api_resource.rb |
eligible-3.0.0.beta2 | lib/eligible/api_resource.rb |