shoptet 0.0.36 → 0.0.40

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a952a3838551a382cce3b632cb70f632cd88444f543c6340fe1e36d1daf8190
4
- data.tar.gz: 0a96835583b54aeb885b990e56868923415f19def7753f5fc5e726642dc0ce3b
3
+ metadata.gz: b578763a5e05d3c8c4517b2e1b87c9b2a6db456aefa78b9bf96f4ddb521d68b1
4
+ data.tar.gz: e42d79f2614837e252c05c30e6f395d06a789b2e75174949cb8a505235fa84ef
5
5
  SHA512:
6
- metadata.gz: f6ed9f6bb8eed36f8fa6f40fd8f96638e65eab9a850ab3ee7b028ed28e96b7bd324074b3589b8ef2ae4bf085c8c230487cbd7b0c8fe5373e653fb7c46f37cd4e
7
- data.tar.gz: c008e134e5e8ce1a205a628f5480443fcacca09c75d6d3cdd77904a6f018e30d732750082a9014c2f0b7aef7685333fe91eac59b682cbe5d39e9fde3cfe8296e
6
+ metadata.gz: a56cd71593cb402ac97b98cc8c2dca03f0a7df1ff8d2ff3a6fedf52fb777fbf449ad44eccd7d86aa6905e039a05f4d71c36865ea68275fd70fd9dc33423ee2a8
7
+ data.tar.gz: 57a62ce4160fdea67455a30dfa5687515e800dd674407dc110887fc5b981c9347ae9a289e09d7cc35eba545beed1ab9c2a9d900d5eecf5a99402b36cbb0a1512
@@ -16,7 +16,7 @@ class Shoptet
16
16
  request[key] = value
17
17
  end
18
18
 
19
- response = handle_net_timeouts { http.request(request) }
19
+ response = handle_connections_errors { http.request(request) }
20
20
  parsed_body = JSON.parse(response.body)
21
21
 
22
22
  unless parsed_body
@@ -27,15 +27,18 @@ class Shoptet
27
27
  parsed_body
28
28
  end
29
29
 
30
- def self.post url, body
30
+ def self.post(url, body)
31
31
  request = Net::HTTP::Post.new(url)
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
- handle_net_timeouts { http.request(request) }
35
+ handle_connections_errors { http.request(request) }
36
36
  end
37
37
 
38
38
  JSON.parse(response.body)
39
+ rescue JSON::ParserError => e
40
+ message = "Original message: #{e.message}, response body: #{response.body}, code :#{response.code}, headers: #{response.to_hash.to_s}"
41
+ fail Shoptet::NonJSONResponse.new(message)
39
42
  end
40
43
 
41
44
  def self.post_binary(url, body, headers)
@@ -47,7 +50,7 @@ class Shoptet
47
50
  end
48
51
 
49
52
  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
50
- handle_net_timeouts { http.request(request) }
53
+ handle_connections_errors { http.request(request) }
51
54
  end
52
55
 
53
56
  JSON.parse(response.body)
@@ -60,7 +63,7 @@ class Shoptet
60
63
  end
61
64
 
62
65
  response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
63
- handle_net_timeouts { http.request(request) }
66
+ handle_connections_errors { http.request(request) }
64
67
  end
65
68
 
66
69
  JSON.parse(response.body)
@@ -68,10 +71,10 @@ class Shoptet
68
71
 
69
72
  private
70
73
 
71
- def self.handle_net_timeouts
74
+ def self.handle_connection_errors
72
75
  begin
73
76
  yield
74
- rescue Net::OpenTimeout
77
+ rescue Net::OpenTimeout, Errno::ECONNRESET
75
78
  yield
76
79
  end
77
80
  end
data/lib/shoptet.rb CHANGED
@@ -15,6 +15,7 @@ class Shoptet
15
15
  class ProductNotFound < StandardError; end
16
16
  class SystemMaintenance < StandardError; end
17
17
  class UnknownError < StandardError; end
18
+ class NonJSONResponse < StandardError; end
18
19
 
19
20
  EXPIRED_TOKEN_CODE = 'expired-token'
20
21
  INVALID_TOKEN_CODE = 'invalid-token'
@@ -25,7 +26,7 @@ class Shoptet
25
26
  end
26
27
 
27
28
  def self.version
28
- '0.0.36'
29
+ '0.0.40'
29
30
  end
30
31
 
31
32
  def self.ar_on_token_error(model)
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.36
4
+ version: 0.0.40
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-10-19 00:00:00.000000000 Z
11
+ date: 2021-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: irb