shoptet 0.0.24 → 0.0.29
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/shoptet.rb +13 -1
- data/lib/shoptet/request.rb +18 -2
- 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: 866b74c908239757de5a5dde121f939888c1b3308a7bcf83496af4882bda642a
|
4
|
+
data.tar.gz: bdbea0cb42f72f45d0b3021e292820c536ca4fd7ac228a756836ae4820e84626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e17a88fa2c52bae48d3b933ff99c35a6ceffbebb690b1798c7c8da02989f1e9fb1c8ddbdea65dc2b69f56133b87da3180b9efa764fea0078272aa7c329ddd66
|
7
|
+
data.tar.gz: 9cdfcc94049272e0a5a4ca81e283166b4579a35e5f47b2d8586b3ce0138916142f5f02c6ca3ff9515cba34232f1074d9d1a51d706815ed180e331fc3319b51d4
|
data/lib/shoptet.rb
CHANGED
@@ -9,6 +9,10 @@ class Shoptet
|
|
9
9
|
class InvalidTokenNoRights < StandardError; end
|
10
10
|
class EmptyResponse < StandardError; end
|
11
11
|
class MaxPageReached < StandardError; end
|
12
|
+
class StockNotFound < StandardError; end
|
13
|
+
class ProductNotFound < StandardError; end
|
14
|
+
class SystemMaintenance < StandardError; end
|
15
|
+
class UnknownError < StandardError; end
|
12
16
|
|
13
17
|
EXPIRED_TOKEN_CODE = 'expired-token'
|
14
18
|
INVALID_TOKEN_CODE = 'invalid-token'
|
@@ -19,7 +23,7 @@ class Shoptet
|
|
19
23
|
end
|
20
24
|
|
21
25
|
def self.version
|
22
|
-
'0.0.
|
26
|
+
'0.0.29'
|
23
27
|
end
|
24
28
|
|
25
29
|
def self.ar_on_token_error(model)
|
@@ -234,6 +238,14 @@ class Shoptet
|
|
234
238
|
raise AddonNotInstalled
|
235
239
|
elsif errors.any? { |err| err["errorCode"] == 'invalid-token-no-rights' }
|
236
240
|
raise InvalidTokenNoRights
|
241
|
+
elsif errors.any? { |err| err["errorCode"] == 'stock-not-found' }
|
242
|
+
raise StockNotFound
|
243
|
+
elsif errors.any? { |err| err["errorCode"] == 'product-not-found' }
|
244
|
+
raise ProductNotFound
|
245
|
+
elsif errors.any? { |err| err["errorCode"] == 'system-maintenance' }
|
246
|
+
raise SystemMaintenance
|
247
|
+
elsif errors.any? { |err| err["errorCode"] == 'unknown-error' }
|
248
|
+
raise UnknownError
|
237
249
|
elsif errors.any? { |err| err["errorCode"] == 'page-not-found' && err['message'].include?('max page is') }
|
238
250
|
raise MaxPageReached
|
239
251
|
else
|
data/lib/shoptet/request.rb
CHANGED
@@ -16,7 +16,7 @@ class Shoptet
|
|
16
16
|
request[key] = value
|
17
17
|
end
|
18
18
|
|
19
|
-
response = http.request(request)
|
19
|
+
response = handle_net_timeouts { http.request(request) }
|
20
20
|
parsed_body = Oj.load(response.body, mode: :compat)
|
21
21
|
|
22
22
|
unless parsed_body
|
@@ -32,10 +32,26 @@ class Shoptet
|
|
32
32
|
request.set_form_data(body)
|
33
33
|
|
34
34
|
response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
|
35
|
-
http.request(request)
|
35
|
+
handle_net_timeouts { http.request(request) }
|
36
36
|
end
|
37
37
|
|
38
38
|
Oj.load(response.body, mode: :compat)
|
39
39
|
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def self.handle_net_timeouts
|
44
|
+
attempts = 0
|
45
|
+
|
46
|
+
begin
|
47
|
+
yield
|
48
|
+
rescue Net::OpenTimeout
|
49
|
+
raise if attempts > 3
|
50
|
+
|
51
|
+
attempts += 1
|
52
|
+
|
53
|
+
retry
|
54
|
+
end
|
55
|
+
end
|
40
56
|
end
|
41
57
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shoptet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Premysl Donat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|
@@ -78,7 +78,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
78
|
- !ruby/object:Gem::Version
|
79
79
|
version: '0'
|
80
80
|
requirements: []
|
81
|
-
rubygems_version: 3.
|
81
|
+
rubygems_version: 3.2.13
|
82
82
|
signing_key:
|
83
83
|
specification_version: 4
|
84
84
|
summary: API wrapper for interacting with Shoptet api
|