shoptet 0.0.25 → 0.0.30
Sign up to get free protection for your applications and to get access to all the features.
- 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
|