shift-api-core 0.1.0 → 0.4.0
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 +5 -5
- data/lib/shift/api/core/errors.rb +33 -4
- data/lib/shift/api/core/version.rb +1 -1
- data/shift-api-core.gemspec +2 -2
- metadata +12 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '02480b0039e54bd391537d9944d2d9b2318e7026d63a46d23504671443f8c57e'
|
4
|
+
data.tar.gz: a242e65bcb3294a46b22bbba81dea3f4743d37d16d21b92403b445dd1545fe47
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 78bbdd3c63a8fd364fe9da187293ebf300ed42b09aebf12770e03be491e0d61afc4b95ae630a44e2b50a92e8a38022722b87a022ac8fd471f7bf6cdfda06d7d6
|
7
|
+
data.tar.gz: fa22be8969a47f3ed231b83023e84e49c44a30936915bf413737e5a7eb973b7ec890818798ee2ba94d5239a638d4a06fb3eb936efe5323293c83b21354846a10
|
@@ -6,19 +6,24 @@ module Shift
|
|
6
6
|
# world in case we ever migrate from it.
|
7
7
|
module Errors
|
8
8
|
class ApiError < StandardError
|
9
|
-
attr_reader :env
|
10
|
-
|
9
|
+
attr_reader :env, :original_exception
|
10
|
+
|
11
|
+
def initialize(env, original_exception)
|
11
12
|
@env = env
|
13
|
+
@original_exception = original_exception
|
12
14
|
end
|
13
15
|
|
14
16
|
def self.from_jsonapi_client(ex)
|
15
|
-
new(ex.env)
|
17
|
+
new(ex.env, ex)
|
16
18
|
end
|
17
19
|
end
|
18
20
|
|
19
21
|
class ClientError < ApiError
|
20
22
|
end
|
21
23
|
|
24
|
+
class ServiceUnavailable < ApiError
|
25
|
+
end
|
26
|
+
|
22
27
|
class AccessDenied < ClientError
|
23
28
|
end
|
24
29
|
|
@@ -29,10 +34,34 @@ module Shift
|
|
29
34
|
end
|
30
35
|
|
31
36
|
class ServerError < ApiError
|
37
|
+
# Replace message with more useful error from the API
|
32
38
|
def message
|
33
|
-
"Internal
|
39
|
+
default_message = "Internal Server Error\n#{env.response.body}"
|
40
|
+
|
41
|
+
api_errors = env.response.body["errors"]
|
42
|
+
return default_message if api_errors.nil?
|
43
|
+
|
44
|
+
api_exception = api_errors[0].dig("meta", "exception")
|
45
|
+
api_exception ? api_exception : default_message
|
46
|
+
end
|
47
|
+
|
48
|
+
# Prepend API backtrace to the backtrace from the gem
|
49
|
+
def backtrace
|
50
|
+
original_backtrace = super
|
51
|
+
return nil if original_backtrace.nil?
|
52
|
+
|
53
|
+
api_errors = env.response.body["errors"]
|
54
|
+
return original_backtrace if api_errors.nil?
|
55
|
+
|
56
|
+
api_backtrace = api_errors[0].dig("meta", "backtrace")
|
57
|
+
return original_backtrace if api_backtrace.nil?
|
58
|
+
|
59
|
+
api_backtrace.map { |entry| "/<shift_api>#{entry}" }.concat(original_backtrace)
|
34
60
|
end
|
35
61
|
end
|
62
|
+
|
63
|
+
class InternalServerError < ServerError
|
64
|
+
end
|
36
65
|
|
37
66
|
class Conflict < ServerError
|
38
67
|
def message
|
data/shift-api-core.gemspec
CHANGED
@@ -22,10 +22,10 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
23
23
|
spec.require_paths = ['lib']
|
24
24
|
|
25
|
-
spec.add_development_dependency 'bundler', '~>
|
25
|
+
spec.add_development_dependency 'bundler', '~> 2.2'
|
26
26
|
spec.add_development_dependency 'rake', '~> 10.0'
|
27
27
|
spec.add_development_dependency 'rspec', '~> 3.0'
|
28
28
|
spec.add_development_dependency 'byebug'
|
29
29
|
spec.add_development_dependency 'webmock', '~> 2.3'
|
30
|
-
spec.add_runtime_dependency 'json_api_client', '
|
30
|
+
spec.add_runtime_dependency 'json_api_client', '>= 1.6.0'
|
31
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shift-api-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shift Commerce Ltd
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2.2'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2.2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -84,16 +84,16 @@ dependencies:
|
|
84
84
|
name: json_api_client
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- - "
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 1.6.0
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- - "
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 1.6.0
|
97
97
|
description: Core gem for all shift commerce API gems
|
98
98
|
email:
|
99
99
|
- team@shiftcommerce.com
|
@@ -128,7 +128,7 @@ homepage: https://github.com/shiftcommerce
|
|
128
128
|
licenses:
|
129
129
|
- MIT
|
130
130
|
metadata: {}
|
131
|
-
post_install_message:
|
131
|
+
post_install_message:
|
132
132
|
rdoc_options: []
|
133
133
|
require_paths:
|
134
134
|
- lib
|
@@ -143,9 +143,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
|
-
|
147
|
-
|
148
|
-
signing_key:
|
146
|
+
rubygems_version: 3.2.22
|
147
|
+
signing_key:
|
149
148
|
specification_version: 4
|
150
149
|
summary: Core gem for all shift commerce API gems
|
151
150
|
test_files: []
|