domoscio_rails 0.3.2 → 0.3.3

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: 7de15318619ac60add7c2ebeb2157708e3a5df0256f3dcb0773631b4dd7dc256
4
- data.tar.gz: 149d4a92db05a3c93feb9cbc5121d3b56773957e36585643ad477908ada0f6c1
3
+ metadata.gz: b0a7e03020d78226e29f7a2930c43cfb2fccbb4389b9d559b3bae047be4dbdf5
4
+ data.tar.gz: 63a5cfb591576eaa115737527a3f99f4d8140ae5eeb51403370bf970a0d7a438
5
5
  SHA512:
6
- metadata.gz: 76d276424eb7a5863cd5f657e85e6d37a550cb04dece402c84a3965b1ab2b0254d7a2a17361ada6e60ff01cb5273f8d043d01aba95992fd5587cc2af9841c435
7
- data.tar.gz: 7607882ea4f08fef22593bdc691f770dc6c791cf3034a416b09473882c73762b70e3b78169f11f931c953f64adaf8ecab54f255b643e0382e6ff472274f2d32a
6
+ metadata.gz: 809d75c75785aa76824e42caaed95c0ad5e4afabd07d06480ddec251d7813fdeb1383c259558ba87745b67aaf88bd1b6ed27784a70547b495c1b271893e1a3f6
7
+ data.tar.gz: ecebc9a43d22e8d835387a7632d0dedc3b29b156e4b48dfbb32666556eb87b202a5e23f70be29481d899013145d108414344d33d32a137cd56b92758cf8c7128
@@ -103,15 +103,14 @@ module DomoscioRails
103
103
  #
104
104
  def self.request(method, url, params={}, filters={}, headers = request_headers, before_request_proc = nil)
105
105
  return false if @disabled
106
+ #sets a default page size of 50
107
+ params.merge!({'per_page': 50}) unless params['per_page']
106
108
  uri = api_uri(url)
107
109
  uri.query = URI.encode_www_form(filters) unless filters.empty?
108
110
  res = DomoscioRails.send_request(uri, method, params, headers, before_request_proc)
109
111
  return res if res.kind_of? DomoscioRails::ProcessingError
110
112
  begin
111
- unless res.kind_of? Net::HTTPSuccess
112
- data = DomoscioRails::JSON.load((res.body.nil? ? '' : res.body), :symbolize_keys => true)
113
- raise ResponseError.new(uri, res.code.to_i, data, res.body, params)
114
- end
113
+ raise_http_failure(uri, res, params)
115
114
  data = DomoscioRails::JSON.load(res.body.nil? ? '' : res.body)
116
115
  DomoscioRails::AuthorizationToken::Manager.storage.store({access_token: res['Accesstoken'], refresh_token: res['Refreshtoken']})
117
116
  rescue MultiJson::LoadError => exception
@@ -126,10 +125,7 @@ module DomoscioRails
126
125
  res = DomoscioRails.send_request(uri, method, params.merge({page: j}), headers, before_request_proc)
127
126
  return res if res.kind_of? DomoscioRails::ProcessingError
128
127
  begin
129
- unless res.kind_of? Net::HTTPSuccess
130
- body = DomoscioRails::JSON.load((res.body.nil? ? '' : res.body), :symbolize_keys => true)
131
- raise ResponseError.new(uri, res.code.to_i, body, res.body, params)
132
- end
128
+ raise_http_failure(uri, res, params)
133
129
  body = DomoscioRails::JSON.load(res.body.nil? ? '' : res.body)
134
130
  data += body
135
131
  data.flatten!
@@ -152,12 +148,23 @@ module DomoscioRails
152
148
  http.request req
153
149
  end
154
150
  rescue Timeout::Error, Errno::EINVAL, Errno::ECONNREFUSED, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => exception
155
- ProcessingError.new(uri, 500, exception, res.body)
151
+ ProcessingError.new(uri, 500, exception, res)
156
152
  end
157
153
  end
158
154
 
159
155
  private
160
156
 
157
+ def self.raise_http_failure(uri, res, params)
158
+ unless res.kind_of? Net::HTTPSuccess
159
+ if res.blank?
160
+ raise ResponseError.new(uri, 500, {error: {status: 500, message: 'AdaptiveEngine not available'}}, {}, params)
161
+ else
162
+ body = DomoscioRails::JSON.load((res.body.nil? ? '' : res.body), :symbolize_keys => true)
163
+ raise ResponseError.new(uri, res.code.to_i, body, res.body, params)
164
+ end
165
+ end
166
+ end
167
+
161
168
  def self.user_agent
162
169
  @uname ||= get_uname
163
170
  {
@@ -177,7 +184,6 @@ module DomoscioRails
177
184
 
178
185
  def self.request_headers
179
186
  auth_token = DomoscioRails::AuthorizationToken::Manager.get_token
180
-
181
187
  if !auth_token.is_a? String
182
188
  headers = {
183
189
  'user_agent' => "#{DomoscioRails.user_agent}",
@@ -6,17 +6,17 @@ module DomoscioRails
6
6
  # Error Message from AdaptiveEngine
7
7
  class ResponseError < Error
8
8
  attr_reader :request_url, :code, :details, :body, :request_params
9
- def initialize(request_url, code, details, body, request_params)
9
+ def initialize(request_url, code, details = {}, body = nil, request_params = {})
10
10
  @request_url, @code, @details, @body, @request_params = request_url, code, details, body, request_params
11
11
  super(message) if message
12
12
  end
13
- def message; @details.dig(:error, :message) || @details; end
13
+ def message; @details.is_a?(Hash) ? @details.dig(:error, :message) : @details; end
14
14
  end
15
15
 
16
16
  # ProcessingError from DomoscioRails
17
17
  class ProcessingError < Error
18
18
  attr_reader :request_url, :code, :details, :body, :request_params
19
- def initialize(request_url, code, details, body, request_params)
19
+ def initialize(request_url, code, details = {}, body = nil, request_params = {})
20
20
  @request_url, @code, @details, @body, @request_params = request_url, code, details, body, request_params
21
21
  super(message) if message
22
22
  end
@@ -8,7 +8,6 @@ module DomoscioRails
8
8
  DomoscioRails.request(:post, url(id), params)
9
9
  end
10
10
  end
11
-
12
11
  def self.included(base)
13
12
  base.extend(ClassMethods)
14
13
  end
@@ -20,7 +19,6 @@ module DomoscioRails
20
19
  DomoscioRails.request(:put, url(id), params)
21
20
  end
22
21
  end
23
-
24
22
  def self.included(base)
25
23
  base.extend(ClassMethods)
26
24
  end
@@ -32,7 +30,6 @@ module DomoscioRails
32
30
  DomoscioRails.request(:put, url(nil, nil, true), params)
33
31
  end
34
32
  end
35
-
36
33
  def self.included(base)
37
34
  base.extend(ClassMethods)
38
35
  end
@@ -40,19 +37,14 @@ module DomoscioRails
40
37
 
41
38
  module Fetch
42
39
  module ClassMethods
43
- def fetch(id_or_filters = nil)
44
- id, filters = DomoscioRails::HTTPCalls::Fetch.parse_id_or_filters(id_or_filters)
45
- response = DomoscioRails.request(:get, url(id), {}, filters)
40
+ def fetch(id = nil, params = {})
41
+ DomoscioRails.request(:get, url(id), params)
46
42
  end
47
43
  end
48
44
 
49
45
  def self.included(base)
50
46
  base.extend(ClassMethods)
51
47
  end
52
-
53
- def self.parse_id_or_filters(id_or_filters = nil)
54
- id_or_filters.is_a?(Hash) ? [nil, id_or_filters] : [id_or_filters, {}]
55
- end
56
48
  end
57
49
 
58
50
  module Destroy
@@ -81,7 +73,5 @@ module DomoscioRails
81
73
  base.extend(ClassMethods)
82
74
  end
83
75
  end
84
-
85
-
86
76
  end
87
77
  end
@@ -1,3 +1,3 @@
1
1
  module DomoscioRails
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: domoscio_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoit Praly
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-03 00:00:00.000000000 Z
11
+ date: 2021-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -92,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
92
92
  - !ruby/object:Gem::Version
93
93
  version: '0'
94
94
  requirements: []
95
- rubygems_version: 3.0.3
95
+ rubygems_version: 3.1.2
96
96
  signing_key:
97
97
  specification_version: 4
98
98
  summary: Summary of DomoscioRails.