eligible 3.0.0.beta3 → 3.0.0.beta4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c15b179a3d689c0b67b0aad3b0d30b06cff86810ef22bdd7ba5351e4f37a78b3
4
- data.tar.gz: a7b44c086cce0b3e8c24aac7e3adc17f40bb1b48353f48c212b0a73cd3245a26
3
+ metadata.gz: ebc3b35305aecdf0a8ec318e4289d016d7e04723fac122a949bd6350acf49bad
4
+ data.tar.gz: 32bbca6062268d61c3f369369290e054f93d6e976b5117dff109830f576be3b4
5
5
  SHA512:
6
- metadata.gz: 8977215260e0d8e3ad44aec074e628fbf25978e306e27666918d17555ae6913b02e5a842dabac7711bb7ba0039a69d65dc9b203be7daab2c572bf5879bd2a3ac
7
- data.tar.gz: 57a26bba7636c3fb63a7365625c16d1d20dd6a3deeb723cbf6c5e45bbb7902432c862fee32f9702b7d7fb38c46f62018478167a092e789ad2cde00fafb949888
6
+ metadata.gz: 79488ab8c8f891662a54c1f9ac29bfee834648eb1fbf756a94e3ead25058eddd3cd232e52af0280619829b4130c0597b4d772b80d60143460c5326f5ad1b3812
7
+ data.tar.gz: 95d4d124f204774c0c6d2444f574045138a4ac515b3839391a718a6217416f854e01f0d84762f68b7556ae8bc35d8a9b68abd637d60eefa6900d046327a26058
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.0.0.beta4 - 2020-03-16
4
+ - Fixed query params conversion to support Expand feature for new REST API Endpoints
5
+ - Changed new REST API endpoints format to support `ID` field or `params`
6
+
3
7
  ## 3.0.0.beta3 - 2020-03-09
4
8
  - Added support for new REST API endpoint "PatientStatement" and "PatientStatementServiceLine"
5
9
 
data/lib/eligible.rb CHANGED
@@ -42,6 +42,7 @@ require 'eligible/risk_assessment'
42
42
  require 'eligible/icd'
43
43
 
44
44
  # New REST API Endpoints
45
+ require 'eligible/v1_0/rest_api_base'
45
46
  require 'eligible/v1_0/file_object'
46
47
  require 'eligible/v1_0/patient_statement'
47
48
  require 'eligible/v1_0/patient_statement_service_line'
@@ -20,6 +20,10 @@ module Eligible
20
20
  "/#{CGI.escape(class_name.downcase)}/"
21
21
  end
22
22
 
23
+ def self.endpoint_name
24
+ self.const_get('ENDPOINT_NAME')
25
+ end
26
+
23
27
  def self.require_param(value, name)
24
28
  fail ArgumentError, "#{name} of the #{class_name} is required" if value.nil? || (value.is_a?(String) && value.empty?)
25
29
  end
@@ -33,6 +37,10 @@ module Eligible
33
37
  end
34
38
  end
35
39
 
40
+ def self.rest_api_params(id_or_params)
41
+ id_or_params.is_a?(Hash) ? id_or_params : { id: id_or_params }
42
+ end
43
+
36
44
  def self.send_request(method, url, params, opts)
37
45
  headers = opts.clone
38
46
  client_secret = headers.delete(:client_secret)
data/lib/eligible/util.rb CHANGED
@@ -75,13 +75,13 @@ module Eligible
75
75
 
76
76
  def self.flatten_params_array(value, calculated_key)
77
77
  result = []
78
- value.each_with_index do |elem, index|
78
+ value.each do |elem|
79
79
  if elem.is_a?(Hash)
80
80
  result += flatten_params(elem, "#{calculated_key}[]")
81
81
  elsif elem.is_a?(Array)
82
82
  result += flatten_params_array(elem, calculated_key)
83
83
  else
84
- result << ["#{calculated_key}[#{index}]", elem]
84
+ result << ["#{calculated_key}[]", elem]
85
85
  end
86
86
  end
87
87
  result
@@ -1,19 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Eligible
4
- class FileObject < APIResource
5
- REST_API_VERSION = '1.0'.freeze
4
+ class FileObject < RestAPIBase
5
+ ENDPOINT_NAME = 'files'.freeze
6
6
 
7
- def self.get(params, opts = {})
8
- send_request :get, api_url('files', params, :file_id), params, opts.merge(required_params: [:file_id])
9
- end
10
-
11
- def self.post(params, opts = {})
12
- send_request :post, api_url('files'), params, opts
13
- end
14
-
15
- def self.list(params, opts = {})
16
- send_request :get, api_url('files'), params, opts
17
- end
7
+ # not an allowed operation so override the implementation to not support explicitly even though route is not defined
8
+ def self.update; end
18
9
  end
19
10
  end
@@ -1,74 +1,58 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Eligible
4
- class PatientStatement < APIResource
5
- REST_API_VERSION = '1.0'.freeze
6
-
7
- def self.get(params, opts = {})
8
- send_request :get, api_url('patient_statements', params, :patient_statement_id), params, opts.merge(required_params: [:patient_statement_id])
9
- end
10
-
11
- def self.post(params, opts = {})
12
- send_request :post, api_url('patient_statements'), params, opts
13
- end
14
-
15
- def self.update(params, opts = {})
16
- send_request :put, api_url('patient_statements', params, :patient_statement_id), params, opts.merge(required_params: [:patient_statement_id])
17
- end
18
-
19
- def self.list(params, opts = {})
20
- send_request :get, api_url('patient_statements'), params, opts
21
- end
4
+ class PatientStatement < RestAPIBase
5
+ ENDPOINT_NAME = 'patient_statements'.freeze
22
6
 
23
7
  # Finalize the patient statement
24
- def self.finalize(params, opts = {})
25
- send_request :post, "/patient_statements/#{statement_id(params)}/finalize", params, opts.merge(required_params: [:patient_statement_id])
8
+ def self.finalize(id, opts = {})
9
+ send_request :post, "/patient_statements/#{statement_id(id)}/finalize", rest_api_params(id), opts.merge(required_params: [:id])
26
10
  end
27
11
 
28
12
  # Post a payment
29
13
  def self.payment(params, opts = {})
30
- send_request :post, "/patient_statements/#{statement_id(params)}/payment", params, opts.merge(required_params: [:patient_statement_id])
14
+ send_request :post, "/patient_statements/#{statement_id(params)}/payment", rest_api_params(params), opts.merge(required_params: [:id])
31
15
  end
32
16
 
33
17
  # List all payments
34
18
  def self.payments(params, opts = {})
35
- send_request :get, "/patient_statements/#{statement_id(params)}/payments", params, opts.merge(required_params: [:patient_statement_id])
19
+ send_request :get, "/patient_statements/#{statement_id(params)}/payments", rest_api_params(params), opts.merge(required_params: [:id])
36
20
  end
37
21
 
38
22
  # Capture a Patient Statement
39
23
  def self.capture(params, opts = {})
40
- send_request :post, "/patient_statements/#{statement_id(params)}/capture", params, opts.merge(required_params: [:patient_statement_id])
24
+ send_request :post, "/patient_statements/#{statement_id(params)}/capture", rest_api_params(params), opts.merge(required_params: [:id])
41
25
  end
42
26
 
43
27
  # Process a Patient Statement
44
28
  def self.process(params, opts = {})
45
- send_request :post, "/patient_statements/#{statement_id(params)}/process", params, opts.merge(required_params: [:patient_statement_id])
29
+ send_request :post, "/patient_statements/#{statement_id(params)}/process", rest_api_params(params), opts.merge(required_params: [:id])
46
30
  end
47
31
 
48
32
  # Send a Patient Statement
49
- def self.send(params, opts = {})
50
- send_request :post, "/patient_statements/#{statement_id(params)}/send", params, opts.merge(required_params: [:patient_statement_id])
33
+ def self.send(id, opts = {})
34
+ send_request :post, "/patient_statements/#{statement_id(id)}/send", rest_api_params(id), opts.merge(required_params: [:id])
51
35
  end
52
36
 
53
37
  # Void a Patient Statement
54
- def self.void(params, opts = {})
55
- send_request :post, "/patient_statements/#{statement_id(params)}/void", params, opts.merge(required_params: [:patient_statement_id])
38
+ def self.void(id, opts = {})
39
+ send_request :post, "/patient_statements/#{statement_id(id)}/void", rest_api_params(id), opts.merge(required_params: [:id])
56
40
  end
57
41
 
58
42
  # Mark UnCollectible
59
- def self.mark_uncollectible(params, opts = {})
60
- send_request :post, "/patient_statements/#{statement_id(params)}/mark_uncollectible", params, opts.merge(required_params: [:patient_statement_id])
43
+ def self.mark_uncollectible(id, opts = {})
44
+ send_request :post, "/patient_statements/#{statement_id(id)}/mark_uncollectible", rest_api_params(id), opts.merge(required_params: [:id])
61
45
  end
62
46
 
63
47
  # Reestimate a Patient Statement
64
48
  def self.reestimate(params, opts = {})
65
- send_request :post, "/patient_statements/#{statement_id(params)}/reestimate", params, opts.merge(required_params: [:patient_statement_id])
49
+ send_request :post, "/patient_statements/#{statement_id(params)}/reestimate", rest_api_params(params), opts.merge(required_params: [:id])
66
50
  end
67
51
 
68
52
  private
69
53
 
70
- def statement_id(params)
71
- Util.value(params, :patient_statement_id)
54
+ def statement_id(id_or_params)
55
+ id_or_params.is_a?(Hash) ? Util.value(id_or_params, :id) : id_or_params
72
56
  end
73
57
  end
74
58
  end
@@ -1,19 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Eligible
4
- class PatientStatementServiceLine < APIResource
5
- REST_API_VERSION = '1.0'.freeze
4
+ class PatientStatementServiceLine < RestAPIBase
5
+ ENDPOINT_NAME = 'patient_statement_service_lines'.freeze
6
6
 
7
- def self.get(params, opts = {})
8
- send_request :get, api_url('patient_statement_service_lines', params, :patient_statement_service_line_id), params, opts.merge(required_params: [:patient_statement_service_line_id])
9
- end
10
-
11
- def self.post(params, opts = {})
12
- send_request :post, api_url('patient_statement_service_lines'), params, opts
13
- end
14
-
15
- def self.list(params, opts = {})
16
- send_request :get, api_url('patient_statement_service_lines'), params, opts
17
- end
7
+ # not an allowed operation so override the implementation to not support explicitly even though route is not defined
8
+ def self.update; end
18
9
  end
19
10
  end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Eligible
4
+ class RestAPIBase < APIResource
5
+ REST_API_VERSION = '1.0'.freeze
6
+
7
+ def self.retrieve(id, opts = {})
8
+ send_request :get, api_url(endpoint_name, rest_api_params(id), :id), rest_api_params(id), opts.merge(required_params: [:id])
9
+ end
10
+
11
+ def self.create(params, opts = {})
12
+ send_request :post, api_url(endpoint_name), rest_api_params(params), opts
13
+ end
14
+
15
+ def self.update(params, opts = {})
16
+ send_request :put, api_url(endpoint_name, rest_api_params(params), :id), rest_api_params(params), opts.merge(required_params: [:id])
17
+ end
18
+
19
+ def self.list(params, opts = {})
20
+ send_request :get, api_url(endpoint_name), rest_api_params(params), opts
21
+ end
22
+ end
23
+ end
@@ -1,3 +1,3 @@
1
1
  module Eligible
2
- VERSION = '3.0.0.beta3'.freeze
2
+ VERSION = '3.0.0.beta4'.freeze
3
3
  end
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.0.beta3
4
+ version: 3.0.0.beta4
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: 2020-03-11 00:00:00.000000000 Z
13
+ date: 2020-03-19 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rest-client
@@ -158,6 +158,7 @@ files:
158
158
  - lib/eligible/v1_0/file_object.rb
159
159
  - lib/eligible/v1_0/patient_statement.rb
160
160
  - lib/eligible/v1_0/patient_statement_service_line.rb
161
+ - lib/eligible/v1_0/rest_api_base.rb
161
162
  - lib/eligible/version.rb
162
163
  - lib/eligible/visit_type.rb
163
164
  - lib/eligible/x12.rb