eligible 1.0 → 3.0.0.beta17
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circleci/config.yml +76 -0
- data/.codeclimate.yml +23 -0
- data/.gitignore +3 -0
- data/.rspec +3 -0
- data/.rubocop.yml +1158 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +170 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +66 -0
- data/LICENSE +1 -1
- data/README.md +700 -93
- data/Rakefile +12 -2
- data/eligible.gemspec +14 -16
- data/lib/eligible/api_resource.rb +49 -5
- data/lib/eligible/calculator_deploy_url.rb +7 -0
- data/lib/eligible/claim.rb +22 -6
- data/lib/eligible/coverage.rb +19 -0
- data/lib/eligible/coverage_resource.rb +23 -0
- data/lib/eligible/customer.rb +19 -0
- data/lib/eligible/demographic.rb +6 -35
- data/lib/eligible/eligible_object.rb +12 -15
- data/lib/eligible/encryptor.rb +121 -0
- data/lib/eligible/enrollment.rb +23 -0
- data/lib/eligible/errors/eligible_error.rb +6 -3
- data/lib/eligible/errors/invalid_request_error.rb +4 -0
- data/lib/eligible/icd.rb +16 -0
- data/lib/eligible/json.rb +5 -15
- data/lib/eligible/lockbox.rb +39 -0
- data/lib/eligible/medicare.rb +11 -0
- data/lib/eligible/oauth_token.rb +9 -0
- data/lib/eligible/ocr.rb +15 -0
- data/lib/eligible/original_signature_pdf.rb +45 -0
- data/lib/eligible/payer.rb +17 -0
- data/lib/eligible/payer_mapping.rb +37 -0
- data/lib/eligible/payment.rb +11 -0
- data/lib/eligible/preauth_resource.rb +11 -0
- data/lib/eligible/precert.rb +15 -0
- data/lib/eligible/provider_model.rb +7 -0
- data/lib/eligible/public_key.rb +27 -0
- data/lib/eligible/received_pdf.rb +26 -0
- data/lib/eligible/referral.rb +11 -0
- data/lib/eligible/risk_assessment.rb +15 -0
- data/lib/eligible/session_token.rb +11 -0
- data/lib/eligible/ticket.rb +40 -0
- data/lib/eligible/util.rb +29 -38
- data/lib/eligible/v1_0/action.rb +9 -0
- data/lib/eligible/v1_0/attribute.rb +9 -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 +54 -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/remark.rb +21 -0
- data/lib/eligible/v1_0/reports/accuracy_stats.rb +23 -0
- data/lib/eligible/v1_0/reports/estimate_friction.rb +23 -0
- data/lib/eligible/v1_0/reports/in_scope_distribution.rb +23 -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 +11 -0
- data/lib/eligible/x12.rb +8 -0
- data/lib/eligible.rb +320 -110
- metadata +148 -67
- data/CONTRIBUTORS +0 -1
- data/lib/eligible/plan.rb +0 -42
- data/lib/eligible/service.rb +0 -39
- data/test/test_eligible.rb +0 -279
- data/test/test_helper.rb +0 -67
@@ -0,0 +1,45 @@
|
|
1
|
+
module Eligible
|
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
|
+
|
8
|
+
def self.get(params, opts = {})
|
9
|
+
send_request :get, original_signature_pdf_url(params), params, opts.merge(required_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)
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.post(params, opts = {})
|
18
|
+
setup_file(params)
|
19
|
+
send_request :post, original_signature_pdf_url(params), params, opts.merge(required_params: [:enrollment_npi_id])
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.update(params, opts = {})
|
23
|
+
setup_file(params)
|
24
|
+
send_request :put, original_signature_pdf_url(params), params, opts.merge(required_params: [:enrollment_npi_id])
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.delete(params, opts = {})
|
28
|
+
send_request :delete, original_signature_pdf_url(params), params, opts.merge(required_params: [:enrollment_npi_id])
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.download(params, opts = {})
|
32
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
33
|
+
require_param(enrollment_npi_id, 'Enrollment Npi id')
|
34
|
+
params[:format] = 'x12'
|
35
|
+
headers = opts.clone
|
36
|
+
api_key = headers.delete(:api_key)
|
37
|
+
response = Eligible.request(:get, "/enrollment_npis/#{enrollment_npi_id}/original_signature_pdf/download", api_key, params, headers)[0]
|
38
|
+
filename = params[:filename] || '/tmp/original_signature_pdf.pdf'
|
39
|
+
file = File.new(filename, 'w')
|
40
|
+
file.write response
|
41
|
+
file.close
|
42
|
+
"PDF file stored at #{filename}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Eligible
|
2
|
+
class Payer < APIResource
|
3
|
+
def self.list(params, opts = {})
|
4
|
+
send_request :get, api_url('payers'), params, opts
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.get(params, opts = {})
|
8
|
+
send_request :get, api_url('payers', params, :payer_id), params, opts.merge(required_params: [:payer_id])
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.search_options(params, opts = {})
|
12
|
+
payer_id = Util.value(params, :payer_id)
|
13
|
+
url = payer_id.nil? ? '/payers/search_options' : "/payers/#{payer_id}/search_options"
|
14
|
+
send_request :get, url, params, opts
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
class PayerMapping < APIResource
|
5
|
+
def self.mapper(params, opts = {})
|
6
|
+
send_request :post, '/payer_mapping/mapper', params, opts
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.mapper_batch(params, opts = {})
|
10
|
+
send_request :post, '/payer_mapping/mapper/batch', params, opts
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.search(params, opts = {})
|
14
|
+
send_request :post, '/payer_mapping/search', params, opts
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.search_batch(params, opts = {})
|
18
|
+
send_request :post, '/payer_mapping/search/batch', params, opts
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.normalize(params, opts = {})
|
22
|
+
send_request :post, '/payer_mapping/normalize', params, opts
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.normalize_batch(params, opts = {})
|
26
|
+
send_request :post, '/payer_mapping/normalize/batch', params, opts
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.normalize_cased(params, opts = {})
|
30
|
+
send_request :post, '/payer_mapping/normalize_cased', params, opts
|
31
|
+
end
|
32
|
+
|
33
|
+
def self.normalize_cased_batch(params, opts = {})
|
34
|
+
send_request :post, '/payer_mapping/normalize_cased/batch', params, opts
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Eligible
|
2
|
+
class Payment < APIResource
|
3
|
+
def self.get(params, opts = {})
|
4
|
+
send_request :get, '/payment/status.json', params, opts
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.batch(params, opts = {})
|
8
|
+
send_request :get, '/batch/payment/status.json', params, opts
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Eligible
|
2
|
+
class Precert < PreauthResource
|
3
|
+
def self.require(params, opts = {})
|
4
|
+
send_request :get, '/precert/require.json', params, opts
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.get_uri
|
8
|
+
return '/precert/inquiry.json'
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.post_uri
|
12
|
+
return '/precert/create.json'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
class PublicKey < APIResource
|
5
|
+
def self.get(params, opts = {})
|
6
|
+
send_request :get, api_url('public_keys', params, :key_id), params, opts.merge(required_params: [:key_id])
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.post(params, opts = {})
|
10
|
+
send_request :post, api_url('public_keys'), params, opts
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.activate(params, opts = {})
|
14
|
+
key_id = Util.value(params, :key_id)
|
15
|
+
send_request :get, "/public_keys/#{key_id}/activate", params, opts.merge(required_params: [:key_id])
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.all(params, opts = {})
|
19
|
+
send_request :get, api_url('public_keys'), params, opts
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.create_pair
|
23
|
+
rsa_key = OpenSSL::PKey::RSA.new(4096)
|
24
|
+
[ rsa_key.to_pem, rsa_key.public_key.to_pem ]
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,26 @@
|
|
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, opts = {})
|
9
|
+
send_request :get, received_pdf_url(params), params, opts.merge(required_params: [:enrollment_npi_id])
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.download(params, opts = {})
|
13
|
+
enrollment_npi_id = Util.value(params, :enrollment_npi_id)
|
14
|
+
require_param(enrollment_npi_id, 'Enrollment Npi id')
|
15
|
+
params[:format] = 'x12'
|
16
|
+
headers = opts.clone
|
17
|
+
api_key = headers.delete(:api_key)
|
18
|
+
response = Eligible.request(:get, "/enrollment_npis/#{params[:enrollment_npi_id]}/received_pdf/download", api_key, params, headers)[0]
|
19
|
+
filename = params[:filename] || '/tmp/received_pdf.pdf'
|
20
|
+
file = File.new(filename, 'w')
|
21
|
+
file.write response
|
22
|
+
file.close
|
23
|
+
"PDF file stored at #{filename}"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Eligible
|
2
|
+
class RiskAssessment < APIResource
|
3
|
+
def self.criteria(params, opts = {})
|
4
|
+
send_request :get, '/risk_assessments/criteria.json', params, opts
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.cost_estimate(params, opts = {})
|
8
|
+
send_request :get, '/risk_assessments/cost_estimates.json', params, opts
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.fetch(params, opts = {})
|
12
|
+
send_request :get, '/risk_assessments/fetch.json', params, opts
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Eligible
|
2
|
+
class SessionToken < APIResource
|
3
|
+
def self.create(params, opts = {})
|
4
|
+
send_request :post, '/session_tokens/create.json', params, opts
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.revoke(params, opts = {})
|
8
|
+
send_request :post, '/session_tokens/revoke.json', params, opts
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module Eligible
|
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
|
+
|
16
|
+
def self.create(params, opts = {})
|
17
|
+
send_request :post, ticket_url, params, opts
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.comments(params, opts = {})
|
21
|
+
send_request :post, ticket_url(params, true), params, opts.merge(required_params: [:id])
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.all(params, opts = {})
|
25
|
+
send_request :get, ticket_url, params, opts
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.get(params, opts = {})
|
29
|
+
send_request :get, ticket_url(params), params, opts.merge(required_params: [:id])
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.delete(params, opts = {})
|
33
|
+
send_request :delete, ticket_url(params), params, opts.merge(required_params: [:id])
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.update(params, opts = {})
|
37
|
+
send_request :put, ticket_url(params), params, opts.merge(required_params: [:id])
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/eligible/util.rb
CHANGED
@@ -1,34 +1,29 @@
|
|
1
1
|
module Eligible
|
2
2
|
module Util
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
res
|
11
|
-
when Array
|
12
|
-
h.map { |v| objects_to_ids(v) }
|
13
|
-
else
|
14
|
-
h
|
15
|
-
end
|
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]
|
16
10
|
end
|
17
11
|
|
18
12
|
def self.convert_to_eligible_object(resp, api_key)
|
19
|
-
types = {
|
20
|
-
'plan' => Plan,
|
21
|
-
'service' => Service,
|
22
|
-
'demographic' => Demographic,
|
23
|
-
'claim' => Claim
|
24
|
-
}
|
25
13
|
case resp
|
26
14
|
when Array
|
27
|
-
resp
|
15
|
+
if resp[0] && resp[0][:enrollment_npi]
|
16
|
+
Enrollment.construct_from({ enrollments: resp }, api_key)
|
17
|
+
else
|
18
|
+
resp.map { |i| convert_to_eligible_object(i, api_key) }
|
19
|
+
end
|
28
20
|
when Hash
|
29
|
-
|
30
|
-
|
31
|
-
|
21
|
+
if resp[:enrollment_npi]
|
22
|
+
klass = Enrollment
|
23
|
+
elsif resp[:demographics]
|
24
|
+
klass = Coverage
|
25
|
+
elsif resp[:subscriber] && resp[:dependent]
|
26
|
+
klass = Demographic
|
32
27
|
end
|
33
28
|
klass ||= EligibleObject
|
34
29
|
klass.construct_from(resp, api_key)
|
@@ -37,25 +32,21 @@ module Eligible
|
|
37
32
|
end
|
38
33
|
end
|
39
34
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
false
|
45
|
-
else
|
46
|
-
true
|
47
|
-
end
|
35
|
+
# Converts a key into a symbol if it is possible, returns the key if it is not
|
36
|
+
def self.symbolize_name(key)
|
37
|
+
return key unless key.respond_to?(:to_sym)
|
38
|
+
return key.to_sym
|
48
39
|
end
|
49
40
|
|
50
41
|
def self.symbolize_names(object)
|
51
42
|
case object
|
52
43
|
when Hash
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
44
|
+
{}.tap do |new_hash|
|
45
|
+
object.each do |key, value|
|
46
|
+
key = symbolize_name(key)
|
47
|
+
new_hash[key] = symbolize_names(value)
|
48
|
+
end
|
57
49
|
end
|
58
|
-
new
|
59
50
|
when Array
|
60
51
|
object.map { |value| symbolize_names(value) }
|
61
52
|
else
|
@@ -67,7 +58,7 @@ module Eligible
|
|
67
58
|
URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
|
68
59
|
end
|
69
60
|
|
70
|
-
def self.flatten_params(params, parent_key=nil)
|
61
|
+
def self.flatten_params(params, parent_key = nil)
|
71
62
|
result = []
|
72
63
|
params.each do |key, value|
|
73
64
|
calculated_key = parent_key ? "#{parent_key}[#{url_encode(key)}]" : url_encode(key)
|
@@ -86,7 +77,7 @@ module Eligible
|
|
86
77
|
result = []
|
87
78
|
value.each do |elem|
|
88
79
|
if elem.is_a?(Hash)
|
89
|
-
result += flatten_params(elem, calculated_key)
|
80
|
+
result += flatten_params(elem, "#{calculated_key}[]")
|
90
81
|
elsif elem.is_a?(Array)
|
91
82
|
result += flatten_params_array(elem, calculated_key)
|
92
83
|
else
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class Charge < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'charges'.freeze
|
7
|
+
|
8
|
+
def self.delete(_params, _opts = {})
|
9
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class Claim < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'claims'.freeze
|
7
|
+
|
8
|
+
def self.delete(_params, _opts = {})
|
9
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.submit(id, opts = {})
|
13
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/submit", rest_api_params(id), opts.merge(required_params: [:id])
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.correct(id, opts = {})
|
17
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/correct", rest_api_params(id), opts.merge(required_params: [:id])
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.cancel(id, opts = {})
|
21
|
+
send_request :delete, "/#{endpoint_name}/#{object_id(id)}/cancel", rest_api_params(id), opts.merge(required_params: [:id])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class Enrollment < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'enrollments'.freeze
|
7
|
+
|
8
|
+
def self.summary(params, opts = {})
|
9
|
+
send_request :get, "/#{endpoint_name}/summary", rest_api_params(params), opts
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.escalate(id, opts = {})
|
13
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/escalate", rest_api_params(id), opts.merge(required_params: [:id])
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class Estimate < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'estimates'.freeze
|
7
|
+
|
8
|
+
def self.process(id, opts = {})
|
9
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/process", rest_api_params(id), opts.merge(required_params: [:id])
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.reestimate(id, opts = {})
|
13
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/reestimate", rest_api_params(id), opts.merge(required_params: [:id])
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.convert(id, opts = {})
|
17
|
+
send_request :post, "/#{endpoint_name}/#{object_id(id)}/convert", rest_api_params(id), opts.merge(required_params: [:id])
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.update(_params, _opts = {})
|
21
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.delete(_params, _opts = {})
|
25
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class EstimateServiceLine < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'estimate_service_lines'.freeze
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.update(_params, _opts = {})
|
10
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.delete(_params, _opts = {})
|
14
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class Fee < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'fees'.freeze
|
7
|
+
|
8
|
+
def self.create(_params, _opts = {})
|
9
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.update(_params, _opts = {})
|
13
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.delete(_params, _opts = {})
|
17
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class FeeRefund < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'fee_refunds'.freeze
|
7
|
+
|
8
|
+
def self.retrieve(params, opts = {})
|
9
|
+
send_request :get, "#{fee_url(params)}/fee_refunds/#{fee_refund_id(params)}", rest_api_params(params), opts.merge(required_params: [:id, :fee])
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.create(params, opts = {})
|
13
|
+
send_request :post, "#{fee_url(params)}/fee_refunds", rest_api_params(params), opts.merge(required_params: [:fee])
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.update(params, opts = {})
|
17
|
+
send_request :put, "#{fee_url(params)}/fee_refunds/#{fee_refund_id(params)}", rest_api_params(params), opts.merge(required_params: [:id, :fee])
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.list(params, opts = {})
|
21
|
+
send_request :get, "#{fee_url(params)}/fee_refunds", rest_api_params(params), opts.merge(required_params: [:fee])
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.delete(_params, _opts = {})
|
25
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class File < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'files'.freeze
|
7
|
+
|
8
|
+
def self.update(_params, _opts = {})
|
9
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.delete(_params, _opts = {})
|
13
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Eligible
|
4
|
+
module V1_0
|
5
|
+
class FileLink < RestAPIBase
|
6
|
+
ENDPOINT_NAME = 'file_links'.freeze
|
7
|
+
|
8
|
+
def self.delete(_params, _opts = {})
|
9
|
+
fail NotImplementedError, "Not an allowed operation for this endpoint"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|