eligible 2.6.0 → 2.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +754 -762
- data/ChangeLog +7 -0
- data/README.md +276 -64
- data/lib/eligible.rb +17 -4
- data/lib/eligible/api_resource.rb +14 -1
- data/lib/eligible/claim.rb +6 -3
- data/lib/eligible/coverage_resource.rb +5 -1
- data/lib/eligible/customer.rb +4 -4
- data/lib/eligible/enrollment.rb +4 -4
- data/lib/eligible/original_signature_pdf.rb +20 -6
- data/lib/eligible/payer.rb +4 -3
- data/lib/eligible/preauth_resource.rb +11 -0
- data/lib/eligible/precert.rb +11 -0
- data/lib/eligible/received_pdf.rb +24 -0
- data/lib/eligible/referral.rb +11 -0
- data/lib/eligible/ticket.rb +19 -6
- data/lib/eligible/util.rb +9 -0
- data/lib/eligible/version.rb +1 -1
- metadata +6 -2
data/lib/eligible.rb
CHANGED
@@ -23,7 +23,11 @@ require 'eligible/medicare'
|
|
23
23
|
require 'eligible/ticket'
|
24
24
|
require 'eligible/customer'
|
25
25
|
require 'eligible/original_signature_pdf'
|
26
|
+
require 'eligible/received_pdf'
|
26
27
|
require 'eligible/payer'
|
28
|
+
require 'eligible/preauth_resource'
|
29
|
+
require 'eligible/precert'
|
30
|
+
require 'eligible/referral'
|
27
31
|
|
28
32
|
# Errors
|
29
33
|
require 'eligible/errors/eligible_error'
|
@@ -88,11 +92,19 @@ module Eligible
|
|
88
92
|
params[:format].is_a?(String) && params[:format].downcase == 'x12'
|
89
93
|
end
|
90
94
|
|
95
|
+
def self.test_key?(params)
|
96
|
+
Util.key?(params, :test)
|
97
|
+
end
|
98
|
+
|
99
|
+
def self.api_key?(params)
|
100
|
+
Util.key?(params, :api_key)
|
101
|
+
end
|
102
|
+
|
91
103
|
def self.request(method, url, api_key, params = {}, headers = {})
|
92
104
|
api_key ||= @@api_key
|
93
105
|
test = self.test
|
94
|
-
api_key = params
|
95
|
-
test = params
|
106
|
+
api_key = Util.value(params, :api_key) if api_key?(params)
|
107
|
+
test = Util.value(params, :test) if test_key?(params)
|
96
108
|
|
97
109
|
fail AuthenticationError, 'No API key provided. (HINT: set your API key using "Eligible.api_key = <API-KEY>".' unless api_key
|
98
110
|
|
@@ -120,7 +132,7 @@ module Eligible
|
|
120
132
|
payload = nil
|
121
133
|
else
|
122
134
|
params.merge!('api_key' => api_key, 'test' => test)
|
123
|
-
payload =
|
135
|
+
payload = Util.key?(params, :file) ? params : Eligible::JSON.dump(params)
|
124
136
|
end
|
125
137
|
|
126
138
|
begin
|
@@ -147,7 +159,8 @@ module Eligible
|
|
147
159
|
open_timeout: 30,
|
148
160
|
payload: payload,
|
149
161
|
timeout: 80,
|
150
|
-
ssl_verify_callback: verify_certificate
|
162
|
+
ssl_verify_callback: verify_certificate,
|
163
|
+
ssl_verify_callback_warnings: false
|
151
164
|
}
|
152
165
|
|
153
166
|
begin
|
@@ -4,6 +4,15 @@ module Eligible
|
|
4
4
|
name.split('::').last
|
5
5
|
end
|
6
6
|
|
7
|
+
def self.api_url(base, params = nil, param_id = nil)
|
8
|
+
if params.nil?
|
9
|
+
"/#{base}.json"
|
10
|
+
else
|
11
|
+
id = Util.value(params, param_id)
|
12
|
+
"/#{base}/#{id}.json"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
7
16
|
def self.url
|
8
17
|
if self == APIResource
|
9
18
|
fail NotImplementedError, 'APIResource is an abstract class. You should perform actions on its subclasses (Plan, Service, etc.)'
|
@@ -16,9 +25,13 @@ module Eligible
|
|
16
25
|
end
|
17
26
|
|
18
27
|
def self.send_request(method, url, api_key, params, required_param_name = nil)
|
19
|
-
|
28
|
+
unless required_param_name.nil?
|
29
|
+
required_param = Util.value(params, required_param_name)
|
30
|
+
require_param(required_param, required_param_name)
|
31
|
+
end
|
20
32
|
response, api_key = Eligible.request(method, url, api_key, params)
|
21
33
|
Util.convert_to_eligible_object(response, api_key)
|
22
34
|
end
|
35
|
+
|
23
36
|
end
|
24
37
|
end
|
data/lib/eligible/claim.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Claim < APIResource
|
3
3
|
def self.ack(params, api_key = nil)
|
4
|
-
|
4
|
+
reference_id = Util.value(params, :reference_id)
|
5
|
+
send_request(:get, "/claims/#{reference_id}/acknowledgements.json", api_key, params, :reference_id)
|
5
6
|
end
|
6
7
|
|
7
8
|
def self.post(params, api_key = nil)
|
@@ -13,8 +14,10 @@ module Eligible
|
|
13
14
|
end
|
14
15
|
|
15
16
|
def self.payment_report(params, api_key = nil)
|
16
|
-
|
17
|
-
|
17
|
+
reference_id = Util.value(params, :reference_id)
|
18
|
+
require_param(reference_id, 'Reference id')
|
19
|
+
id = Util.value(params, :id)
|
20
|
+
url = id.nil? ? "/claims/#{reference_id}/payment_reports" : "/claims/#{reference_id}/payment_reports/#{id}"
|
18
21
|
send_request(:get, url, api_key, params)
|
19
22
|
end
|
20
23
|
|
@@ -4,7 +4,7 @@ module Eligible
|
|
4
4
|
send_request(:get, get_uri, api_key, params)
|
5
5
|
end
|
6
6
|
|
7
|
-
def self.
|
7
|
+
def self.post(params, api_key = nil)
|
8
8
|
send_request(:post, post_uri, api_key, params)
|
9
9
|
end
|
10
10
|
|
@@ -15,5 +15,9 @@ module Eligible
|
|
15
15
|
def self.post_uri
|
16
16
|
fail NotImplementedError, "Please implement class method #{self}.post_uri"
|
17
17
|
end
|
18
|
+
|
19
|
+
class << self
|
20
|
+
alias_method :batch_post, :post
|
21
|
+
end
|
18
22
|
end
|
19
23
|
end
|
data/lib/eligible/customer.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Customer < APIResource
|
3
3
|
def self.get(params, api_key = nil)
|
4
|
-
send_request(:get,
|
4
|
+
send_request(:get, api_url('customers', params, :customer_id), api_key, params, :customer_id)
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.post(params, api_key = nil)
|
8
|
-
send_request(:post, '
|
8
|
+
send_request(:post, api_url('customers'), api_key, params)
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.update(params, api_key = nil)
|
12
|
-
send_request(:put,
|
12
|
+
send_request(:put, api_url('customers', params, :customer_id), api_key, params, :customer_id)
|
13
13
|
end
|
14
14
|
|
15
15
|
def self.all(params, api_key = nil)
|
16
|
-
send_request(:get, '
|
16
|
+
send_request(:get, api_url('customers'), api_key, params)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
end
|
data/lib/eligible/enrollment.rb
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Enrollment < APIResource
|
3
3
|
def self.get(params, api_key = nil)
|
4
|
-
send_request(:get,
|
4
|
+
send_request(:get, api_url('enrollment_npis', params, :enrollment_npi_id), api_key, params, :enrollment_npi_id)
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.list(params, api_key = nil)
|
8
|
-
send_request(:get, '
|
8
|
+
send_request(:get, api_url('enrollment_npis'), api_key, params)
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.post(params, api_key = nil)
|
12
|
-
send_request(:post, '
|
12
|
+
send_request(:post, api_url('enrollment_npis'), api_key, params)
|
13
13
|
end
|
14
14
|
|
15
15
|
def self.update(params, api_key = nil)
|
16
|
-
send_request(:put,
|
16
|
+
send_request(:put, api_url('enrollment_npis', params, :enrollment_npi_id), api_key, params, :enrollment_npi_id)
|
17
17
|
end
|
18
18
|
|
19
19
|
def enrollment_npis
|
@@ -1,29 +1,43 @@
|
|
1
1
|
module Eligible
|
2
2
|
class OriginalSignaturePdf < APIResource
|
3
|
+
def self.original_signature_pdf_url(params)
|
4
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
5
|
+
"/enrollment_npis/#{enrollment_npi_id}/original_signature_pdf"
|
6
|
+
end
|
7
|
+
|
3
8
|
def self.get(params, api_key = nil)
|
4
|
-
send_request(:get,
|
9
|
+
send_request(:get, original_signature_pdf_url(params), api_key, params, :enrollment_npi_id)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.setup_file(params)
|
13
|
+
file = Util.value(params, :file)
|
14
|
+
params[:file] = File.new(file, 'rb') if file.is_a?(String)
|
5
15
|
end
|
6
16
|
|
7
17
|
def self.post(params, api_key = nil)
|
8
|
-
|
18
|
+
setup_file(params)
|
19
|
+
send_request(:post, original_signature_pdf_url(params), api_key, params, :enrollment_npi_id)
|
9
20
|
end
|
10
21
|
|
11
22
|
def self.update(params, api_key = nil)
|
12
|
-
|
23
|
+
setup_file(params)
|
24
|
+
send_request(:put, original_signature_pdf_url(params), api_key, params, :enrollment_npi_id)
|
13
25
|
end
|
14
26
|
|
15
27
|
def self.delete(params, api_key = nil)
|
16
|
-
send_request(:delete,
|
28
|
+
send_request(:delete, original_signature_pdf_url(params), api_key, params, :enrollment_npi_id)
|
17
29
|
end
|
18
30
|
|
19
31
|
def self.download(params, api_key = nil)
|
20
|
-
|
32
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
33
|
+
require_param(enrollment_npi_id, 'Enrollment Npi id')
|
21
34
|
params[:format] = 'x12'
|
22
|
-
response = Eligible.request(:get, "/enrollment_npis/#{
|
35
|
+
response = Eligible.request(:get, "/enrollment_npis/#{enrollment_npi_id}/original_signature_pdf/download", api_key, params)[0]
|
23
36
|
filename = params[:filename] || '/tmp/original_signature_pdf.pdf'
|
24
37
|
file = File.new(filename, 'w')
|
25
38
|
file.write response
|
26
39
|
file.close
|
40
|
+
"PDF file stored at #{filename}"
|
27
41
|
end
|
28
42
|
end
|
29
43
|
end
|
data/lib/eligible/payer.rb
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Payer < APIResource
|
3
3
|
def self.list(params, api_key = nil)
|
4
|
-
send_request(:get, '
|
4
|
+
send_request(:get, api_url('payers'), api_key, params)
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.get(params, api_key = nil)
|
8
|
-
send_request(:get,
|
8
|
+
send_request(:get, api_url('payers', params, :payer_id), api_key, params, :payer_id)
|
9
9
|
end
|
10
10
|
|
11
11
|
def self.search_options(params, api_key = nil)
|
12
|
-
|
12
|
+
payer_id = Util.value(params, :payer_id)
|
13
|
+
url = payer_id.nil? ? '/payers/search_options' : "/payers/#{payer_id}/search_options"
|
13
14
|
send_request(:get, url, api_key, params)
|
14
15
|
end
|
15
16
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
module Eligible
|
2
|
+
class ReceivedPdf < APIResource
|
3
|
+
def self.received_pdf_url(params)
|
4
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
5
|
+
"/enrollment_npis/#{enrollment_npi_id}/received_pdf"
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.get(params, api_key = nil)
|
9
|
+
send_request(:get, received_pdf_url(params), api_key, params, :enrollment_npi_id)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.download(params, api_key = nil)
|
13
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
14
|
+
require_param(enrollment_npi_id, 'Enrollment Npi id')
|
15
|
+
params[:format] = 'x12'
|
16
|
+
response = Eligible.request(:get, "/enrollment_npis/#{params[:enrollment_npi_id]}/received_pdf/download", api_key, params)[0]
|
17
|
+
filename = params[:filename] || '/tmp/received_pdf.pdf'
|
18
|
+
file = File.new(filename, 'w')
|
19
|
+
file.write response
|
20
|
+
file.close
|
21
|
+
"PDF file stored at #{filename}"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/eligible/ticket.rb
CHANGED
@@ -1,27 +1,40 @@
|
|
1
1
|
module Eligible
|
2
2
|
class Ticket < APIResource
|
3
|
+
def self.ticket_url(params = nil, comments = false)
|
4
|
+
if params.nil?
|
5
|
+
'/tickets'
|
6
|
+
else
|
7
|
+
id = Util.value(params, :id)
|
8
|
+
if comments
|
9
|
+
"/tickets/#{id}/comments"
|
10
|
+
else
|
11
|
+
"/tickets/#{id}"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
3
16
|
def self.create(params, api_key = nil)
|
4
|
-
send_request(:post,
|
17
|
+
send_request(:post, ticket_url, api_key, params)
|
5
18
|
end
|
6
19
|
|
7
20
|
def self.comments(params, api_key = nil)
|
8
|
-
send_request(:post,
|
21
|
+
send_request(:post, ticket_url(params, true), api_key, params, :id)
|
9
22
|
end
|
10
23
|
|
11
24
|
def self.all(params, api_key = nil)
|
12
|
-
send_request(:get,
|
25
|
+
send_request(:get, ticket_url, api_key, params)
|
13
26
|
end
|
14
27
|
|
15
28
|
def self.get(params, api_key = nil)
|
16
|
-
send_request(:get,
|
29
|
+
send_request(:get, ticket_url(params), api_key, params, :id)
|
17
30
|
end
|
18
31
|
|
19
32
|
def self.delete(params, api_key = nil)
|
20
|
-
send_request(:delete,
|
33
|
+
send_request(:delete, ticket_url(params), api_key, params, :id)
|
21
34
|
end
|
22
35
|
|
23
36
|
def self.update(params, api_key = nil)
|
24
|
-
send_request(:put,
|
37
|
+
send_request(:put, ticket_url(params), api_key, params, :id)
|
25
38
|
end
|
26
39
|
end
|
27
40
|
end
|
data/lib/eligible/util.rb
CHANGED
@@ -1,5 +1,14 @@
|
|
1
1
|
module Eligible
|
2
2
|
module Util
|
3
|
+
|
4
|
+
def self.key?(params, key)
|
5
|
+
[key.to_sym, key.to_s].any? { |k| params.key?(k) }
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.value(params, key)
|
9
|
+
params[key.to_sym] || params[key.to_s]
|
10
|
+
end
|
11
|
+
|
3
12
|
def self.convert_to_eligible_object(resp, api_key)
|
4
13
|
case resp
|
5
14
|
when Array
|
data/lib/eligible/version.rb
CHANGED
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: 2.6.
|
4
|
+
version: 2.6.1
|
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: 2016-
|
13
|
+
date: 2016-05-10 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
@@ -135,6 +135,10 @@ files:
|
|
135
135
|
- lib/eligible/original_signature_pdf.rb
|
136
136
|
- lib/eligible/payer.rb
|
137
137
|
- lib/eligible/payment.rb
|
138
|
+
- lib/eligible/preauth_resource.rb
|
139
|
+
- lib/eligible/precert.rb
|
140
|
+
- lib/eligible/received_pdf.rb
|
141
|
+
- lib/eligible/referral.rb
|
138
142
|
- lib/eligible/ticket.rb
|
139
143
|
- lib/eligible/util.rb
|
140
144
|
- lib/eligible/version.rb
|