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 +4 -4
- data/lib/domoscio_rails.rb +16 -10
- data/lib/domoscio_rails/errors.rb +3 -3
- data/lib/domoscio_rails/http_calls.rb +2 -12
- data/lib/domoscio_rails/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b0a7e03020d78226e29f7a2930c43cfb2fccbb4389b9d559b3bae047be4dbdf5
|
4
|
+
data.tar.gz: 63a5cfb591576eaa115737527a3f99f4d8140ae5eeb51403370bf970a0d7a438
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 809d75c75785aa76824e42caaed95c0ad5e4afabd07d06480ddec251d7813fdeb1383c259558ba87745b67aaf88bd1b6ed27784a70547b495c1b271893e1a3f6
|
7
|
+
data.tar.gz: ecebc9a43d22e8d835387a7632d0dedc3b29b156e4b48dfbb32666556eb87b202a5e23f70be29481d899013145d108414344d33d32a137cd56b92758cf8c7128
|
data/lib/domoscio_rails.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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
|
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)
|
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(
|
44
|
-
|
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
|
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.
|
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:
|
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.
|
95
|
+
rubygems_version: 3.1.2
|
96
96
|
signing_key:
|
97
97
|
specification_version: 4
|
98
98
|
summary: Summary of DomoscioRails.
|