shoptet 0.0.8 → 0.0.13
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 +19 -3
- data/lib/shoptet/request.rb +11 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b54d6391037e97c1da81d008e8bb53f2947cbe9420f5066d193e3ac37de9f2ce
|
4
|
+
data.tar.gz: 1a3a5b996e229250d145018f1fc4ec9e6befaa542bc7aa7e647059a717cbf216
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14807f333d2eb001674f09cd59264060607084d7ccc132bb9a84554ef98b5d2aaba1261240fd0f8e70d4e20c3a02992fe7631706c848df3078dc46e6865c8a6b
|
7
|
+
data.tar.gz: 5ad641c3f8a09cf75b3beab292bba91572fa1a4fd35864109826eb9d21fd0d9f3db6dc16b31838413980f931859721c095bde8bd38971274f8f5a99da15626bd
|
data/lib/shoptet.rb
CHANGED
@@ -8,6 +8,8 @@ class Shoptet
|
|
8
8
|
class AddonSuspended < StandardError; end
|
9
9
|
class AddonNotInstalled < StandardError; end
|
10
10
|
class InvalidTokenNoRights < StandardError; end
|
11
|
+
class EmptyRequestResponse < StandardError; end
|
12
|
+
class MaxPageReached < StandardError; end
|
11
13
|
|
12
14
|
DEFAULT_ON_TOKEN_ERROR = -> (api) do
|
13
15
|
api.api_token = api.new_api_token
|
@@ -66,7 +68,7 @@ class Shoptet
|
|
66
68
|
end
|
67
69
|
|
68
70
|
def self.version
|
69
|
-
'0.0.
|
71
|
+
'0.0.13'
|
70
72
|
end
|
71
73
|
|
72
74
|
def self.ar_on_token_error(model)
|
@@ -127,6 +129,16 @@ class Shoptet
|
|
127
129
|
@on_token_error = on_token_error || DEFAULT_ON_TOKEN_ERROR
|
128
130
|
end
|
129
131
|
|
132
|
+
def endpoints api_params = {}
|
133
|
+
enumerize 'https://api.myshoptet.com/api/system/endpoints', api_params
|
134
|
+
end
|
135
|
+
|
136
|
+
def endpoint_approved? endpoint
|
137
|
+
@approved_endpoints ||= endpoints
|
138
|
+
|
139
|
+
@approved_endpoints.any? { _1['endpoint'] == endpoint }
|
140
|
+
end
|
141
|
+
|
130
142
|
def authorize_url redirect_url, state
|
131
143
|
query = {
|
132
144
|
client_id: @client_id,
|
@@ -140,12 +152,14 @@ class Shoptet
|
|
140
152
|
end
|
141
153
|
|
142
154
|
def shop_info api_params = {}
|
143
|
-
|
155
|
+
url = assemble_uri 'https://api.myshoptet.com/api/eshop', api_params
|
156
|
+
result = request url
|
144
157
|
result['data']
|
145
158
|
end
|
146
159
|
|
147
160
|
def design_info api_params = {}
|
148
|
-
|
161
|
+
url = assemble_uri 'https://api.myshoptet.com/api/eshop/design', api_params
|
162
|
+
result = request url
|
149
163
|
|
150
164
|
result['data']
|
151
165
|
end
|
@@ -253,6 +267,8 @@ class Shoptet
|
|
253
267
|
raise AddonNotInstalled
|
254
268
|
elsif errors.any? { |err| err["errorCode"] == 'invalid-token-no-rights' }
|
255
269
|
raise InvalidTokenNoRights
|
270
|
+
elsif errors.any? { |err| err["errorCode"] == 'page-not-found' && err['message'].include?('max page is') }
|
271
|
+
raise MaxPageReached
|
256
272
|
else
|
257
273
|
raise Error.new result
|
258
274
|
end
|
data/lib/shoptet/request.rb
CHANGED
@@ -21,10 +21,10 @@ class Shoptet
|
|
21
21
|
|
22
22
|
http = Net::HTTP.new parsed_uri.host, parsed_uri.port
|
23
23
|
http.use_ssl = true
|
24
|
-
http.open_timeout =
|
25
|
-
http.read_timeout =
|
26
|
-
http.write_timeout =
|
27
|
-
http.ssl_timeout =
|
24
|
+
http.open_timeout = 60
|
25
|
+
http.read_timeout = 60
|
26
|
+
http.write_timeout = 60
|
27
|
+
http.ssl_timeout = 60
|
28
28
|
|
29
29
|
request = Net::HTTP::Get.new parsed_uri
|
30
30
|
headers.each do |key, value|
|
@@ -32,8 +32,14 @@ class Shoptet
|
|
32
32
|
end
|
33
33
|
|
34
34
|
response = http.request request
|
35
|
+
parsed_body = JSON.parse response.body
|
35
36
|
|
36
|
-
|
37
|
+
unless parsed_body
|
38
|
+
message = "Status code: #{response.code}, url: #{uri}"
|
39
|
+
fail Shoptet::EmptyRequestResponse.new(message)
|
40
|
+
end
|
41
|
+
|
42
|
+
parsed_body
|
37
43
|
rescue Net::OpenTimeout
|
38
44
|
retry if attempt < 4
|
39
45
|
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.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Premysl Donat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-11-
|
11
|
+
date: 2020-11-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irb
|