domoscio_rails 0.3.2 → 0.3.3

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: 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.