eligible 1.0 → 3.0.0.beta17
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 +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
|