shoptet 0.0.25 → 0.0.30
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/Gemfile.lock +1 -1
- data/lib/shoptet.rb +10 -1
- data/lib/shoptet/request.rb +21 -5
- data/shoptet.gemspec +0 -2
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 671a3a74eccf368f260d0cf4706cb1ba166012164bb44460f66713e9dde87998
|
4
|
+
data.tar.gz: 37a1695eb6a8a84479169399d02663792c17dc15ffe0fb735ecf5a413a38e82e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7572c405b6db590e09e16a2232f5925c883964ec7d06ca009e1e7056494eb44fcb8e35513d460cc0d0c17066b7997c823f6960c2f2b59bfa77b65ced9dba4694
|
7
|
+
data.tar.gz: 80f326ab967e6641513d30791c1b140ab952a1df4552c446809ce469857181e657b322640fd60d3eaefe4c65097f60d83af3d333ec46df291340e16b532f8fff
|
data/Gemfile.lock
CHANGED
data/lib/shoptet.rb
CHANGED
@@ -10,6 +10,9 @@ class Shoptet
|
|
10
10
|
class EmptyResponse < StandardError; end
|
11
11
|
class MaxPageReached < StandardError; end
|
12
12
|
class StockNotFound < StandardError; end
|
13
|
+
class ProductNotFound < StandardError; end
|
14
|
+
class SystemMaintenance < StandardError; end
|
15
|
+
class UnknownError < StandardError; end
|
13
16
|
|
14
17
|
EXPIRED_TOKEN_CODE = 'expired-token'
|
15
18
|
INVALID_TOKEN_CODE = 'invalid-token'
|
@@ -20,7 +23,7 @@ class Shoptet
|
|
20
23
|
end
|
21
24
|
|
22
25
|
def self.version
|
23
|
-
'0.0.
|
26
|
+
'0.0.30'
|
24
27
|
end
|
25
28
|
|
26
29
|
def self.ar_on_token_error(model)
|
@@ -237,6 +240,12 @@ class Shoptet
|
|
237
240
|
raise InvalidTokenNoRights
|
238
241
|
elsif errors.any? { |err| err["errorCode"] == 'stock-not-found' }
|
239
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
|
240
249
|
elsif errors.any? { |err| err["errorCode"] == 'page-not-found' && err['message'].include?('max page is') }
|
241
250
|
raise MaxPageReached
|
242
251
|
else
|
data/lib/shoptet/request.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'net/http'
|
2
|
-
require '
|
2
|
+
require 'json'
|
3
3
|
|
4
4
|
class Shoptet
|
5
5
|
class Request
|
@@ -16,8 +16,8 @@ class Shoptet
|
|
16
16
|
request[key] = value
|
17
17
|
end
|
18
18
|
|
19
|
-
response = http.request(request)
|
20
|
-
parsed_body =
|
19
|
+
response = handle_net_timeouts { http.request(request) }
|
20
|
+
parsed_body = JSON.parse(response.body)
|
21
21
|
|
22
22
|
unless parsed_body
|
23
23
|
message = "Status code: #{response.code}, url: #{url}"
|
@@ -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
|
+
JSON.parse(response.body)
|
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
|
39
55
|
end
|
40
56
|
end
|
41
57
|
end
|
data/shoptet.gemspec
CHANGED
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
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.30
|
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
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: oj
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: irb
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|