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.
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