eligible 3.0.0.beta3 → 3.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
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