Class: Eligible::APIResource
Direct Known Subclasses
CalculatorDeployUrl, Claim, CoverageResource, Customer, Enrollment, Icd, Lockbox, OauthToken, Ocr, OriginalSignaturePdf, Payer, PayerMapping, Payment, ProviderModel, PublicKey, ReceivedPdf, RiskAssessment, SessionToken, Ticket, V1_0::RestAPIBase, VisitType, X12
Instance Attribute Summary
#api_key, #eligible_id
Class Method Summary
collapse
#[], #[]=, construct_from, #each, #error, #initialize, #keys, #refresh_from, #to_hash, #to_json, #values
Class Method Details
.api_url(base, params = nil, param_id = nil) ⇒ Object
7
8
9
10
11
12
13
14
|
# File 'lib/eligible/api_resource.rb', line 7
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
|
.class_name ⇒ Object
3
4
5
|
# File 'lib/eligible/api_resource.rb', line 3
def self.class_name
name.split('::').last
end
|
.endpoint_name ⇒ Object
23
24
25
|
# File 'lib/eligible/api_resource.rb', line 23
def self.endpoint_name
self.const_get('ENDPOINT_NAME')
end
|
.require_param(value, name) ⇒ Object
27
28
29
|
# File 'lib/eligible/api_resource.rb', line 27
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
|
.required_param_validation(params:, required_params:) ⇒ Object
31
32
33
34
35
36
37
38
|
# File 'lib/eligible/api_resource.rb', line 31
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
|
.rest_api_params(id_or_params) ⇒ Object
40
41
42
|
# File 'lib/eligible/api_resource.rb', line 40
def self.rest_api_params(id_or_params)
id_or_params.is_a?(Hash) ? id_or_params : { id: id_or_params }
end
|
.send_request(method, url, params, opts = {}) ⇒ Object
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/eligible/api_resource.rb', line 44
def self.send_request(method, url, params, opts = {})
= opts.clone
client_secret = .delete(:client_secret)
api_key = .delete(:api_key)
api_key = client_secret unless client_secret.nil?
required_param_validation(params: params, required_params: .delete(:required_params))
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, **)
Util.convert_to_eligible_object(response, api_key)
end
|
.url ⇒ Object
16
17
18
19
20
21
|
# File 'lib/eligible/api_resource.rb', line 16
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
|