shoptet 0.0.36 → 0.0.40

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