insights-api-common 4.0.0 → 4.0.1

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