shoptet 0.0.8 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/shoptet.rb +19 -3
  3. data/lib/shoptet/request.rb +11 -5
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 020dcc94bd92d287243ac40e3bf854a9f0e5f4c32670fe221aa7af1a6b785e39
4
- data.tar.gz: 5d3701df86ba602c16e626b7f703b01c733ef6878a3cfa862217c17cad19890e
3
+ metadata.gz: b54d6391037e97c1da81d008e8bb53f2947cbe9420f5066d193e3ac37de9f2ce
4
+ data.tar.gz: 1a3a5b996e229250d145018f1fc4ec9e6befaa542bc7aa7e647059a717cbf216
5
5
  SHA512:
6
- metadata.gz: b060e7a30c1cd96da7f7978231f40648b6a738154a33b0c6b5d8be538edd7e0f2dbfaa29490a16e979337244e9bd432b69e2a0cb3cc604a36d4354ba6c20e3a1
7
- data.tar.gz: '0599e14ba6550168b2b02b31a8b25cb1452d244e27acb358d7a858473033c6992e0dec4a4cf28cf04d46d6c83c82ee4e06d54a0d00e7a2dc1e4afdda06827cb1'
6
+ metadata.gz: 14807f333d2eb001674f09cd59264060607084d7ccc132bb9a84554ef98b5d2aaba1261240fd0f8e70d4e20c3a02992fe7631706c848df3078dc46e6865c8a6b
7
+ data.tar.gz: 5ad641c3f8a09cf75b3beab292bba91572fa1a4fd35864109826eb9d21fd0d9f3db6dc16b31838413980f931859721c095bde8bd38971274f8f5a99da15626bd
@@ -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.8'
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
- result = request 'https://api.myshoptet.com/api/eshop'
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
- result = request 'https://api.myshoptet.com/api/eshop/design'
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
@@ -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 = 10
25
- http.read_timeout = 10
26
- http.write_timeout = 10
27
- http.ssl_timeout = 10
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
- JSON.parse response.body
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.8
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 00:00:00.000000000 Z
11
+ date: 2020-11-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb