eligible 3.0.0 → 3.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.circleci/config.yml +1 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +101 -11
- data/Gemfile +4 -0
- data/Gemfile.lock +13 -6
- data/README.md +51 -54
- data/eligible.gemspec +2 -1
- data/lib/eligible/api_resource.rb +27 -6
- data/lib/eligible/calculator_deploy_url.rb +2 -2
- data/lib/eligible/claim.rb +10 -10
- data/lib/eligible/coverage.rb +8 -4
- data/lib/eligible/coverage_resource.rb +4 -4
- data/lib/eligible/customer.rb +8 -8
- data/lib/eligible/encryptor.rb +1 -1
- data/lib/eligible/enrollment.rb +8 -8
- data/lib/eligible/errors/eligible_error.rb +2 -1
- data/lib/eligible/icd.rb +6 -6
- data/lib/eligible/lockbox.rb +6 -6
- data/lib/eligible/oauth_token.rb +9 -0
- data/lib/eligible/ocr.rb +2 -2
- data/lib/eligible/original_signature_pdf.rb +12 -10
- data/lib/eligible/payer.rb +6 -6
- data/lib/eligible/payer_mapping.rb +37 -0
- data/lib/eligible/payment.rb +4 -4
- data/lib/eligible/preauth_resource.rb +4 -4
- data/lib/eligible/precert.rb +2 -2
- data/lib/eligible/provider_model.rb +2 -2
- data/lib/eligible/public_key.rb +8 -8
- data/lib/eligible/received_pdf.rb +6 -4
- data/lib/eligible/risk_assessment.rb +6 -6
- data/lib/eligible/session_token.rb +4 -4
- data/lib/eligible/ticket.rb +12 -12
- data/lib/eligible/util.rb +2 -2
- data/lib/eligible/v1_0/action.rb +9 -0
- data/lib/eligible/v1_0/attribute.rb +9 -0
- data/lib/eligible/v1_0/balance_capture.rb +21 -0
- data/lib/eligible/v1_0/charge.rb +13 -0
- data/lib/eligible/v1_0/claim.rb +25 -0
- data/lib/eligible/v1_0/claim_service_line.rb +9 -0
- data/lib/eligible/v1_0/contract.rb +9 -0
- data/lib/eligible/v1_0/device.rb +9 -0
- data/lib/eligible/v1_0/discount.rb +9 -0
- data/lib/eligible/v1_0/enrollment.rb +17 -0
- data/lib/eligible/v1_0/estimate.rb +29 -0
- data/lib/eligible/v1_0/estimate_service_line.rb +17 -0
- data/lib/eligible/v1_0/fee.rb +21 -0
- data/lib/eligible/v1_0/fee_refund.rb +29 -0
- data/lib/eligible/v1_0/file.rb +17 -0
- data/lib/eligible/v1_0/file_link.rb +13 -0
- data/lib/eligible/v1_0/insurance_company.rb +21 -0
- data/lib/eligible/v1_0/insurance_company_alias.rb +9 -0
- data/lib/eligible/v1_0/insurance_policy.rb +9 -0
- data/lib/eligible/v1_0/patient_question.rb +9 -0
- data/lib/eligible/v1_0/patient_questionnaire.rb +9 -0
- data/lib/eligible/v1_0/patient_record.rb +9 -0
- data/lib/eligible/v1_0/patient_statement.rb +59 -0
- data/lib/eligible/v1_0/patient_statement_service_line.rb +13 -0
- data/lib/eligible/v1_0/payment_report.rb +21 -0
- data/lib/eligible/v1_0/product.rb +9 -0
- data/lib/eligible/v1_0/provider.rb +9 -0
- data/lib/eligible/v1_0/refund.rb +21 -0
- data/lib/eligible/v1_0/remark.rb +21 -0
- data/lib/eligible/v1_0/rest_api_base.rb +44 -0
- data/lib/eligible/v1_0/rule.rb +13 -0
- data/lib/eligible/v1_0/session.rb +21 -0
- data/lib/eligible/v1_0/transaction.rb +21 -0
- data/lib/eligible/v1_0/treatment.rb +9 -0
- data/lib/eligible/v1_0/value_list.rb +9 -0
- data/lib/eligible/v1_0/value_list_item.rb +9 -0
- data/lib/eligible/v1_0/verification.rb +17 -0
- data/lib/eligible/version.rb +1 -1
- data/lib/eligible/visit_type.rb +4 -4
- data/lib/eligible/x12.rb +2 -2
- data/lib/eligible.rb +150 -38
- metadata +47 -8
data/lib/eligible.rb
CHANGED
@@ -25,8 +25,10 @@ require 'eligible/ticket'
|
|
25
25
|
require 'eligible/customer'
|
26
26
|
require 'eligible/ocr'
|
27
27
|
require 'eligible/original_signature_pdf'
|
28
|
+
require 'eligible/oauth_token'
|
28
29
|
require 'eligible/received_pdf'
|
29
30
|
require 'eligible/payer'
|
31
|
+
require 'eligible/payer_mapping'
|
30
32
|
require 'eligible/preauth_resource'
|
31
33
|
require 'eligible/precert'
|
32
34
|
require 'eligible/referral'
|
@@ -39,6 +41,45 @@ require 'eligible/calculator_deploy_url'
|
|
39
41
|
require 'eligible/risk_assessment'
|
40
42
|
require 'eligible/icd'
|
41
43
|
|
44
|
+
# New REST API Endpoints
|
45
|
+
require 'eligible/v1_0/rest_api_base'
|
46
|
+
require 'eligible/v1_0/action'
|
47
|
+
require 'eligible/v1_0/attribute'
|
48
|
+
require 'eligible/v1_0/balance_capture'
|
49
|
+
require 'eligible/v1_0/charge'
|
50
|
+
require 'eligible/v1_0/claim'
|
51
|
+
require 'eligible/v1_0/claim_service_line'
|
52
|
+
require 'eligible/v1_0/contract'
|
53
|
+
require 'eligible/v1_0/device'
|
54
|
+
require 'eligible/v1_0/discount'
|
55
|
+
require 'eligible/v1_0/enrollment'
|
56
|
+
require 'eligible/v1_0/estimate'
|
57
|
+
require 'eligible/v1_0/estimate_service_line'
|
58
|
+
require 'eligible/v1_0/fee'
|
59
|
+
require 'eligible/v1_0/fee_refund'
|
60
|
+
require 'eligible/v1_0/file'
|
61
|
+
require 'eligible/v1_0/file_link'
|
62
|
+
require 'eligible/v1_0/insurance_company'
|
63
|
+
require 'eligible/v1_0/insurance_company_alias'
|
64
|
+
require 'eligible/v1_0/insurance_policy'
|
65
|
+
require 'eligible/v1_0/patient_record'
|
66
|
+
require 'eligible/v1_0/patient_statement'
|
67
|
+
require 'eligible/v1_0/patient_statement_service_line'
|
68
|
+
require 'eligible/v1_0/payment_report'
|
69
|
+
require 'eligible/v1_0/patient_question'
|
70
|
+
require 'eligible/v1_0/patient_questionnaire'
|
71
|
+
require 'eligible/v1_0/product'
|
72
|
+
require 'eligible/v1_0/provider'
|
73
|
+
require 'eligible/v1_0/refund'
|
74
|
+
require 'eligible/v1_0/remark'
|
75
|
+
require 'eligible/v1_0/rule'
|
76
|
+
require 'eligible/v1_0/session'
|
77
|
+
require 'eligible/v1_0/transaction'
|
78
|
+
require 'eligible/v1_0/treatment'
|
79
|
+
require 'eligible/v1_0/value_list'
|
80
|
+
require 'eligible/v1_0/value_list_item'
|
81
|
+
require 'eligible/v1_0/verification'
|
82
|
+
|
42
83
|
# Errors
|
43
84
|
require 'eligible/errors/eligible_error'
|
44
85
|
require 'eligible/errors/api_connection_error'
|
@@ -51,14 +92,35 @@ module Eligible
|
|
51
92
|
@@test = false
|
52
93
|
@@api_version = '1.5'
|
53
94
|
@@api_base = "https://gds.eligibleapi.com/v#{@@api_version}"
|
54
|
-
@@fingerprints = %w(
|
55
|
-
1a1b7d4faa43ecdeab40cc8d203583624d5917f4
|
56
|
-
b4225ee59dc7ede4d68e7b2c75c6e6ac79649416
|
95
|
+
@@fingerprints = %w(b4225ee59dc7ede4d68e7b2c75c6e6ac79649416
|
57
96
|
75132c1ab844500c6ad1f26b49c11d36933ce868
|
58
|
-
|
97
|
+
1c3fe254bded256ea30d0a235bb9881b82701082
|
98
|
+
a1cd762a9f4be0f3b6bdd6300e52c6ce8d7d67f5
|
99
|
+
36d6b6f98a2b9bcdf4321d1978553e23cf044b53
|
100
|
+
d93b7697100fe978ae0f78fbf2a2443cc1958ca3
|
101
|
+
896ce24f7a83eb656c040985fdb50ce39f90b813)
|
102
|
+
@@eligible_account = nil
|
103
|
+
@@eligible_account_id = nil
|
104
|
+
|
105
|
+
def self.api_url(url = '', rest_api_version = nil)
|
106
|
+
api_base = rest_api_version ? @@api_base.gsub(/v(\d).(\d)/, "v#{rest_api_version}") : @@api_base
|
107
|
+
api_base + url.to_s
|
108
|
+
end
|
59
109
|
|
60
|
-
def self.
|
61
|
-
@@
|
110
|
+
def self.eligible_account
|
111
|
+
@@eligible_account
|
112
|
+
end
|
113
|
+
|
114
|
+
def self.eligible_account_id
|
115
|
+
@@eligible_account_id
|
116
|
+
end
|
117
|
+
|
118
|
+
def self.eligible_account=(eligible_account)
|
119
|
+
@@eligible_account = eligible_account
|
120
|
+
end
|
121
|
+
|
122
|
+
def self.eligible_account_id=(eligible_account_id)
|
123
|
+
@@eligible_account_id = eligible_account_id
|
62
124
|
end
|
63
125
|
|
64
126
|
def self.api_key
|
@@ -114,12 +176,18 @@ module Eligible
|
|
114
176
|
Util.key?(params, :api_key)
|
115
177
|
end
|
116
178
|
|
179
|
+
def self.rest_api_version?(params)
|
180
|
+
Util.key?(params, :rest_api_version)
|
181
|
+
end
|
182
|
+
|
117
183
|
def self.request(method, url, api_key, params = {}, headers = {})
|
118
184
|
session_token = Util.value(params, :session_token)
|
119
185
|
api_key ||= @@api_key unless session_token
|
120
186
|
test = self.test
|
121
187
|
api_key = Util.value(params, :api_key) if api_key?(params)
|
122
188
|
test = Util.value(params, :test) if test_key?(params)
|
189
|
+
rest_api_version = Util.value(params, :rest_api_version) if rest_api_version?(params)
|
190
|
+
basic_auth = true if rest_api_version?(params)
|
123
191
|
|
124
192
|
fail AuthenticationError, 'No API key provided. (HINT: set your API key using "Eligible.api_key = <API-KEY>".' unless api_key || session_token
|
125
193
|
|
@@ -133,39 +201,13 @@ module Eligible
|
|
133
201
|
uname: uname
|
134
202
|
}
|
135
203
|
|
136
|
-
#
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
when :get, :head, :delete
|
141
|
-
url += "?api_key=#{api_key}"
|
142
|
-
if params && params.count > 0
|
143
|
-
query_string = Util.flatten_params(params).collect { |key, value| "#{key}=#{Util.url_encode(value)}" }.join('&')
|
144
|
-
url += "&#{query_string}"
|
145
|
-
end
|
146
|
-
url += "&test=#{test}"
|
147
|
-
payload = nil
|
148
|
-
else
|
149
|
-
params.merge!('api_key' => api_key, 'test' => test)
|
150
|
-
payload = Util.key?(params, :file) ? params : Eligible::JSON.dump(params)
|
151
|
-
end
|
152
|
-
|
153
|
-
begin
|
154
|
-
headers = { x_eligible_debuginfo: Eligible::JSON.dump(debug_info) }.merge(headers)
|
155
|
-
rescue => e
|
156
|
-
headers = {
|
157
|
-
x_eligible_client_raw_user_agent: debug_info.inspect,
|
158
|
-
error: "#{e} (#{e.class})"
|
159
|
-
}.merge(headers)
|
160
|
-
end
|
161
|
-
|
162
|
-
headers = {
|
163
|
-
user_agent: "eligible-ruby/#{Eligible::VERSION}",
|
164
|
-
authorization: "Bearer #{api_key}",
|
165
|
-
content_type: 'application/json'
|
166
|
-
}.merge(headers)
|
204
|
+
# Set request URL and Payload based on new and old endpoints version
|
205
|
+
url, payload = generate_request_url_and_payload(
|
206
|
+
method, url, params, **{ test: test, rest_api_version: rest_api_version, api_key: api_key, basic_auth: basic_auth },
|
207
|
+
)
|
167
208
|
|
168
|
-
|
209
|
+
# Set request Headers and Authorization based on new and old endpoints version
|
210
|
+
headers = generate_request_headers(headers, debug_info, basic_auth, **{ api_key: api_key, session_token: session_token })
|
169
211
|
|
170
212
|
opts = {
|
171
213
|
method: method,
|
@@ -220,6 +262,76 @@ module Eligible
|
|
220
262
|
return [ resp, api_key ]
|
221
263
|
end
|
222
264
|
|
265
|
+
def self.generate_request_url_and_payload(method, url, params, options)
|
266
|
+
# GET requests, parameters on the query string
|
267
|
+
# POST requests, parameters as json in the body
|
268
|
+
url = api_url(url, options[:rest_api_version])
|
269
|
+
# Used rest_api_version param only to identify new REST API version, and is not required to make calls for new REST api endpoints
|
270
|
+
params.delete(:rest_api_version)
|
271
|
+
case method.to_s.downcase.to_sym
|
272
|
+
when :get, :head, :delete
|
273
|
+
url = fetch_url_with_query_string(params, url, **options)
|
274
|
+
payload = nil
|
275
|
+
else
|
276
|
+
payload = request_payload(options, **params)
|
277
|
+
end
|
278
|
+
|
279
|
+
[url, payload]
|
280
|
+
end
|
281
|
+
|
282
|
+
def self.fetch_url_with_query_string(params, url, options)
|
283
|
+
url += options_query_string(options)
|
284
|
+
return url unless params || params.count == 0
|
285
|
+
|
286
|
+
query_string = params_query_string(params)
|
287
|
+
url += options[:basic_auth] ? "?#{query_string}" : "&#{query_string}"
|
288
|
+
url
|
289
|
+
end
|
290
|
+
|
291
|
+
def self.options_query_string(options)
|
292
|
+
options[:basic_auth] ? '' : "?test=#{options[:test]}&api_key=#{options[:api_key]}"
|
293
|
+
end
|
294
|
+
|
295
|
+
def self.params_query_string(params)
|
296
|
+
Util.flatten_params(params).collect { |key, value| "#{key}=#{Util.url_encode(value)}" }.join('&')
|
297
|
+
end
|
298
|
+
|
299
|
+
def self.request_payload(options, params)
|
300
|
+
params.merge!('test' => options[:test], 'api_key' => options[:api_key]) unless options[:basic_auth]
|
301
|
+
Util.key?(params, :file) ? params : Eligible::JSON.dump(params)
|
302
|
+
end
|
303
|
+
|
304
|
+
def self.generate_request_headers(headers, debug_info, basic_auth, auth_options)
|
305
|
+
begin
|
306
|
+
headers = { x_eligible_debuginfo: Eligible::JSON.dump(debug_info) }.merge(headers)
|
307
|
+
rescue => e
|
308
|
+
headers = {
|
309
|
+
x_eligible_client_raw_user_agent: debug_info.inspect,
|
310
|
+
error: "#{e} (#{e.class})"
|
311
|
+
}.merge(headers)
|
312
|
+
end
|
313
|
+
|
314
|
+
headers = {
|
315
|
+
user_agent: "eligible-ruby/#{Eligible::VERSION}",
|
316
|
+
content_type: 'application/json'
|
317
|
+
}.merge(headers)
|
318
|
+
|
319
|
+
headers[:authorization] = authorization_header(basic_auth, **auth_options)
|
320
|
+
headers[:eligible_version] = api_version if api_version
|
321
|
+
headers[:eligible_account] = eligible_account if eligible_account
|
322
|
+
headers[:eligible_account_id] = eligible_account_id if eligible_account_id
|
323
|
+
headers
|
324
|
+
end
|
325
|
+
|
326
|
+
def self.authorization_header(basic_auth, auth_options)
|
327
|
+
# Using Bearer scheme for Session Token Auth for new REST API endpoints (v1.0)
|
328
|
+
return "Bearer #{auth_options[:session_token]}" if basic_auth && auth_options[:session_token]
|
329
|
+
|
330
|
+
# Using Basic Auth for new REST API endpoints (v1.0)
|
331
|
+
basic_auth_token = Base64.strict_encode64("#{auth_options[:api_key]}:")
|
332
|
+
"Basic #{basic_auth_token}" if basic_auth
|
333
|
+
end
|
334
|
+
|
223
335
|
def self.verify_certificate
|
224
336
|
lambda do |preverify_ok, certificate_store|
|
225
337
|
return true if test == 'true'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eligible
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Katelyn Gleaon
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-09-12 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
@@ -74,14 +74,14 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0.5.
|
77
|
+
version: 0.5.1
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version: 0.5.
|
84
|
+
version: 0.5.1
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
86
|
name: simplecov
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,9 +139,11 @@ files:
|
|
139
139
|
- lib/eligible/json.rb
|
140
140
|
- lib/eligible/lockbox.rb
|
141
141
|
- lib/eligible/medicare.rb
|
142
|
+
- lib/eligible/oauth_token.rb
|
142
143
|
- lib/eligible/ocr.rb
|
143
144
|
- lib/eligible/original_signature_pdf.rb
|
144
145
|
- lib/eligible/payer.rb
|
146
|
+
- lib/eligible/payer_mapping.rb
|
145
147
|
- lib/eligible/payment.rb
|
146
148
|
- lib/eligible/preauth_resource.rb
|
147
149
|
- lib/eligible/precert.rb
|
@@ -153,6 +155,43 @@ files:
|
|
153
155
|
- lib/eligible/session_token.rb
|
154
156
|
- lib/eligible/ticket.rb
|
155
157
|
- lib/eligible/util.rb
|
158
|
+
- lib/eligible/v1_0/action.rb
|
159
|
+
- lib/eligible/v1_0/attribute.rb
|
160
|
+
- lib/eligible/v1_0/balance_capture.rb
|
161
|
+
- lib/eligible/v1_0/charge.rb
|
162
|
+
- lib/eligible/v1_0/claim.rb
|
163
|
+
- lib/eligible/v1_0/claim_service_line.rb
|
164
|
+
- lib/eligible/v1_0/contract.rb
|
165
|
+
- lib/eligible/v1_0/device.rb
|
166
|
+
- lib/eligible/v1_0/discount.rb
|
167
|
+
- lib/eligible/v1_0/enrollment.rb
|
168
|
+
- lib/eligible/v1_0/estimate.rb
|
169
|
+
- lib/eligible/v1_0/estimate_service_line.rb
|
170
|
+
- lib/eligible/v1_0/fee.rb
|
171
|
+
- lib/eligible/v1_0/fee_refund.rb
|
172
|
+
- lib/eligible/v1_0/file.rb
|
173
|
+
- lib/eligible/v1_0/file_link.rb
|
174
|
+
- lib/eligible/v1_0/insurance_company.rb
|
175
|
+
- lib/eligible/v1_0/insurance_company_alias.rb
|
176
|
+
- lib/eligible/v1_0/insurance_policy.rb
|
177
|
+
- lib/eligible/v1_0/patient_question.rb
|
178
|
+
- lib/eligible/v1_0/patient_questionnaire.rb
|
179
|
+
- lib/eligible/v1_0/patient_record.rb
|
180
|
+
- lib/eligible/v1_0/patient_statement.rb
|
181
|
+
- lib/eligible/v1_0/patient_statement_service_line.rb
|
182
|
+
- lib/eligible/v1_0/payment_report.rb
|
183
|
+
- lib/eligible/v1_0/product.rb
|
184
|
+
- lib/eligible/v1_0/provider.rb
|
185
|
+
- lib/eligible/v1_0/refund.rb
|
186
|
+
- lib/eligible/v1_0/remark.rb
|
187
|
+
- lib/eligible/v1_0/rest_api_base.rb
|
188
|
+
- lib/eligible/v1_0/rule.rb
|
189
|
+
- lib/eligible/v1_0/session.rb
|
190
|
+
- lib/eligible/v1_0/transaction.rb
|
191
|
+
- lib/eligible/v1_0/treatment.rb
|
192
|
+
- lib/eligible/v1_0/value_list.rb
|
193
|
+
- lib/eligible/v1_0/value_list_item.rb
|
194
|
+
- lib/eligible/v1_0/verification.rb
|
156
195
|
- lib/eligible/version.rb
|
157
196
|
- lib/eligible/visit_type.rb
|
158
197
|
- lib/eligible/x12.rb
|
@@ -168,14 +207,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
168
207
|
requirements:
|
169
208
|
- - ">="
|
170
209
|
- !ruby/object:Gem::Version
|
171
|
-
version:
|
210
|
+
version: 3.1.0
|
172
211
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
173
212
|
requirements:
|
174
|
-
- - "
|
213
|
+
- - ">"
|
175
214
|
- !ruby/object:Gem::Version
|
176
|
-
version:
|
215
|
+
version: 1.3.1
|
177
216
|
requirements: []
|
178
|
-
rubygems_version: 3.3.
|
217
|
+
rubygems_version: 3.3.8
|
179
218
|
signing_key:
|
180
219
|
specification_version: 4
|
181
220
|
summary: Ruby wrapper for the Eligible API
|