domoscio_viz 0.2.3 → 0.2.4

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: 050c44f613da493c3ca25fd68c8ba142362bf42f461cb20e39934a88688bc53f
4
- data.tar.gz: 83f2f4df4edcb932d70fd9a52b993369a3e758c2ec4f9d1d43c0da9ee458bcbd
3
+ metadata.gz: 887c55dd8caa52f79ff7cdb18b53f7ed134b538f0d3783d5f4826bbe99efe0db
4
+ data.tar.gz: 6229db276d697d67b482d5c6bedf8bf0cd5a236ce3336f73f5187ab4d995af85
5
5
  SHA512:
6
- metadata.gz: 7ad6e1ebc52711ef09bcaf1fbe20da7ae480750829b967702094963f63db1c7679206db7333533d02157235c5056bd8876a5cff76618bac08e584209893d5912
7
- data.tar.gz: e9d0ad596fe0f9c4f8e5411d7a41e962ece08f5c19a7c6ee9b568f24008b76a4d1484914a745aa6d39fad62c4d3e270367c5b62a5da15d64e1f3d042f7c48d14
6
+ metadata.gz: 665710baedb373e38e2cfb5a821f95ce52d5ba80d16de6d56127a8cc90ad1b80cbd9391ae45a377f679f6316bff32623f99e5c1598c1bd4122207d6dae616c4e
7
+ data.tar.gz: e02a53ce48feffc03b70377f129339dd3e4c7ad43f0b776be02baa67d9d8741ec9fc2544ba19e762d36576f8d2bdd1f2a7eb2a433bb9d69cbfce5fb704ffae79
@@ -32,9 +32,9 @@ module DomoscioViz
32
32
  def root_url
33
33
  if @preproduction == true
34
34
  if @test == true
35
- @root_url || "https://domoscio-viz-engine-preprod.azurewebsites.net"
35
+ @root_url || "https://domoscio-viz-engine-v2-preprod.azurewebsites.net"
36
36
  else
37
- @root_url || "https://domoscio-viz-engine-v2.azurewebsites.net"
37
+ @root_url || "https://visualization-engine.domoscio.com"
38
38
  end
39
39
  else
40
40
  @root_url || "http://localhost:3002"
@@ -55,20 +55,16 @@ module DomoscioViz
55
55
  URI(configuration.root_url + url)
56
56
  end
57
57
 
58
- #
59
58
  def self.request(method, url, params={}, filters={}, headers = request_headers, before_request_proc = nil)
60
59
  return false if @disabled
61
60
  uri = api_uri(url)
62
61
  uri.query = URI.encode_www_form(filters) unless filters.empty?
63
62
  res = DomoscioViz.send_request(uri, method, params, headers, before_request_proc)
64
63
  return res if res.kind_of? DomoscioViz::ProcessingError
65
- # decode json data
66
- begin
64
+ begin
65
+ raise_http_failure(uri, res, params)
67
66
  data = DomoscioViz::JSON.load(res.body.nil? ? '' : res.body)
68
- raise ResponseError.new(uri, res.code.to_i, data, res.body, params) unless res.kind_of? Net::HTTPSuccess
69
- unless (res.kind_of? Net::HTTPClientError) || (res.kind_of? Net::HTTPServerError)
70
- DomoscioViz::AuthorizationToken::Manager.storage.store({access_token: res['Accesstoken'], refresh_token: res['Refreshtoken']})
71
- end
67
+ DomoscioViz::AuthorizationToken::Manager.storage.store({access_token: res['Accesstoken'], refresh_token: res['Refreshtoken']})
72
68
  rescue MultiJson::LoadError => exception
73
69
  return ProcessingError.new(uri, 500, exception, res.body, params)
74
70
  rescue ResponseError => exception
@@ -86,12 +82,23 @@ module DomoscioViz
86
82
  http.request req
87
83
  end
88
84
  rescue Timeout::Error, Errno::EINVAL, HTTP::ConnectionError, Errno::ECONNREFUSED, Errno::ECONNRESET, EOFError, Net::HTTPBadResponse, Net::HTTPHeaderSyntaxError, Net::ProtocolError => exception
89
- ProcessingError.new(uri, 500, exception, res.body, params)
85
+ ProcessingError.new(uri, 500, exception, res, params)
90
86
  end
91
87
  end
92
88
 
93
89
  private
94
90
 
91
+ def self.raise_http_failure(uri, res, params)
92
+ unless res.kind_of? Net::HTTPSuccess
93
+ if res.blank?
94
+ raise ResponseError.new(uri, 500, {error: {status: 500, message: 'VisualizationEngine not available'}}, {}, params)
95
+ else
96
+ body = DomoscioRails::JSON.load((res.body.nil? ? '' : res.body), :symbolize_keys => true)
97
+ raise ResponseError.new(uri, res.code.to_i, body, res.body, params)
98
+ end
99
+ end
100
+ end
101
+
95
102
  def self.user_agent
96
103
  @uname ||= get_uname
97
104
  {
@@ -4,20 +4,20 @@ module DomoscioViz
4
4
  # Currently only single subclass used.
5
5
  class Error < StandardError
6
6
  end
7
- # ErrorMessage from VizEngine
7
+ # ResponseError from VizEngine
8
8
  class ResponseError < Error
9
9
  attr_reader :request_url, :code, :details, :body, :request_params
10
- def initialize(request_url, code, details, body, request_params)
10
+ def initialize(request_url, code, details = {}, body = nil, request_params = {})
11
11
  @request_url, @code, @details, @body, @request_params = request_url, code, details, body, request_params
12
12
  super(message) if message
13
13
  end
14
- def message; @details.dig(:error, :message) || @details; end
14
+ def message; @details.is_a?(Hash) ? @details.dig(:error, :message) : @details; end
15
15
  end
16
16
 
17
17
  # ProcessingError from Domoscio_viz
18
18
  class ProcessingError < Error
19
19
  attr_reader :request_url, :code, :details, :body, :request_params
20
- def initialize(request_url, code, details, body, request_params)
20
+ def initialize(request_url, code, details = {}, body = nil, request_params = {})
21
21
  @request_url, @code, @details, @body, @request_params = request_url, code, details, body, request_params
22
22
  super(message) if message
23
23
  end
@@ -4,7 +4,7 @@ module DomoscioViz
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
  desc "Generate config file for DomoscioViz configuration"
6
6
  def install
7
- copy_file "install.rb", "config/initializers/domoscio_viz.rb"
7
+ copy_file "install.rb", "config/initializers/domoscio_viz.rb"
8
8
  end
9
9
  end
10
10
  end
@@ -2,15 +2,10 @@ module DomoscioViz
2
2
  module HTTPCalls
3
3
  module GetUrl
4
4
  module ClassMethods
5
- # In order to catch current SocketsTimeoutError that seem to appear when the VizEngine stays Idle for too long
6
- # Perform the request a second time if it fails the fisrt time
7
5
  def get_url(util_name = nil, params = {})
8
- response = DomoscioViz.request(:post, url(util_name), params)
9
- response = DomoscioViz.request(:post, url(util_name), params) unless response && response.is_a?(Hash) && response['url'] && response['success'] == true
10
- response
6
+ DomoscioViz.request(:post, url(util_name), params)
11
7
  end
12
8
  end
13
-
14
9
  def self.included(base)
15
10
  base.extend(ClassMethods)
16
11
  end
@@ -1,3 +1,3 @@
1
1
  module DomoscioViz
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: domoscio_viz
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
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
@@ -63,7 +63,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
63
  - !ruby/object:Gem::Version
64
64
  version: '0'
65
65
  requirements: []
66
- rubygems_version: 3.0.3
66
+ rubygems_version: 3.1.2
67
67
  signing_key:
68
68
  specification_version: 4
69
69
  summary: Summary of DomoscioViz.