insights-api-common 4.0.0 → 4.0.1

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: 5f6030728902f58dcb0ce11d0de032c9c3ab442877686e097a83a7c6a7da2cfe
4
- data.tar.gz: ef7838a59298b7ef0a5c0b4aa6681331f4757fc073cebbdc791f154c28c05fe9
3
+ metadata.gz: da2ebb5e76ab8009c3a4afda352c91ebcaee7eaa293b1fcc7c55bcd7711f2e6b
4
+ data.tar.gz: 2a772f8bc79d01d48f2ca637ba9adcf0a1fa67c1aefda8bb414d45f5111b4558
5
5
  SHA512:
6
- metadata.gz: bd8564c491431e177fa89daa27330dcbfe02ddfdeaa915eb6207a32fe659257cda7684ef39d0c05e8732c404a3bf3c54617b3f563c4054b170f06ac9901230e4
7
- data.tar.gz: 90c76dc626605e9d9c890203832213751938ae6a45dedeeac4b5d30ce3e76804a166b894be4281549a5169495920d8e6de17446aaf2645ef706b4b19fc7e4697
6
+ metadata.gz: d174ee5da9f78f4c7312ef570c0e3563d059c7332a1e43ad58ac17d7ec9051a4a8ebda04f7f1afa9b4f0179c0c4751204f25dae81d21eded96186336c6ed61a3
7
+ data.tar.gz: e46f808117d0c742c89cc0b477308b8ddfff3e68f72ee36dbd57cc886df1fec97f8070836609c80164457fe98f2982f0a1f25919eee1ffe3aae08400a40696f4
@@ -10,8 +10,11 @@ module Insights
10
10
  logger.error("#{exception.class.name}: #{exception.message}\n#{exception.backtrace.join("\n")}")
11
11
  errors = Insights::API::Common::ErrorDocument.new.tap do |error_document|
12
12
  exception_list_from(exception).each do |exc|
13
- code = exc.respond_to?(:code) ? exc.code : error_code_from_class(exc)
14
- error_document.add(code.to_s, "#{exc.class}: #{exc.message}")
13
+ if api_client_exception?(exc)
14
+ api_client_errors(exc, error_document)
15
+ else
16
+ error_document.add(error_code_from_class(exc).to_s, "#{exc.class}: #{exc.message}")
17
+ end
15
18
  end
16
19
  end
17
20
 
@@ -35,6 +38,24 @@ module Insights
35
38
  DEFAULT_ERROR_CODE
36
39
  end
37
40
  end
41
+
42
+ def api_client_exception?(exc)
43
+ exc.respond_to?(:code) && exc.respond_to?(:response_body) && exc.respond_to?(:response_headers) &&
44
+ !exc.response_body.nil?
45
+ end
46
+
47
+ def api_client_errors(exc, error_document)
48
+ body = JSON.parse(exc.response_body)
49
+ if body.is_a?(Hash) && body.key?('errors') && body['errors'].is_a?(Array)
50
+ body['errors'].each do |error|
51
+ next unless error.key?('status') && error.key?('detail')
52
+
53
+ error_document.add(error['status'], error['detail'])
54
+ end
55
+ else
56
+ error_document.add(exc.code.to_s, exc.message )
57
+ end
58
+ end
38
59
  end
39
60
  end
40
61
  end
@@ -1,7 +1,7 @@
1
1
  module Insights
2
2
  module API
3
3
  module Common
4
- VERSION = "4.0.0".freeze
4
+ VERSION = "4.0.1".freeze
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: insights-api-common
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Insights Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-15 00:00:00.000000000 Z
11
+ date: 2020-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: acts_as_tenant
@@ -56,22 +56,22 @@ dependencies:
56
56
  name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: 5.2.1.1
62
59
  - - "~>"
63
60
  - !ruby/object:Gem::Version
64
61
  version: '5.2'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 5.2.1.1
65
65
  type: :runtime
66
66
  prerelease: false
67
67
  version_requirements: !ruby/object:Gem::Requirement
68
68
  requirements:
69
- - - ">="
70
- - !ruby/object:Gem::Version
71
- version: 5.2.1.1
72
69
  - - "~>"
73
70
  - !ruby/object:Gem::Version
74
71
  version: '5.2'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 5.2.1.1
75
75
  - !ruby/object:Gem::Dependency
76
76
  name: manageiq-loggers
77
77
  requirement: !ruby/object:Gem::Requirement
@@ -399,7 +399,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
399
399
  - !ruby/object:Gem::Version
400
400
  version: '0'
401
401
  requirements: []
402
- rubygems_version: 3.1.2
402
+ rubygems_version: 3.0.3
403
403
  signing_key:
404
404
  specification_version: 4
405
405
  summary: Common Utilites for Insights microservices