tops_connect 0.4.2.1 → 0.4.3

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
  SHA1:
3
- metadata.gz: '08f80c8803c286add456860a40240dfd806a13bf'
4
- data.tar.gz: 5a220f3ebe9ccd09576f315204d285e1d50d8d7c
3
+ metadata.gz: 013f848e5f60161529ada485d46c4bd65c2bc206
4
+ data.tar.gz: 33169982d13dbbbfd3f939b76ab4fd939864a628
5
5
  SHA512:
6
- metadata.gz: 3631d6116ffe750e9361bce393cf09da2c5628ae6536f553cc020b21245a1391c202fb8c57874a1cec9acc8665e503cb3ed5853d5dba852345c92a7b30b33f2b
7
- data.tar.gz: 596f51edf022810a38117a80f6f7e371c3a6b71552188ee375423dbb22a549f41379bf710d8dbdd84b8191d80e93f23e3a5eea3ab1f5c66ab249774d92d217ce
6
+ metadata.gz: be35e62c4e0d288a7384f0e9ca237175c6cb886364bd9590eff4bbcdb2a60f2efbc430b5eb48b4c42f8dcf2406b8a865a6fe9600c49f7de4277a6a5ec6afc3e8
7
+ data.tar.gz: c24da508faa7388ac874ee043832b8896044b43d188f18e1b3f551b01303f6781cd3225e16e772dd88f57b2800f36dfbe6df39262fd18793d621761f662e7d9a
@@ -2,6 +2,7 @@
2
2
  module TopsConnect
3
3
  class Client
4
4
  include HTTParty
5
+ include TopsConnect::Errors
5
6
  include TopsConnect::Communities
6
7
  include TopsConnect::Owners
7
8
  include TopsConnect::Properties
@@ -47,6 +48,11 @@ module TopsConnect
47
48
  when 400..499
48
49
  raise TopsConnect::ClientError, response
49
50
  when 500..599
51
+ message = response.parsed_response&.dig('Message') || ''
52
+
53
+ # These errors can largely be ignored - it's not our fault
54
+ raise TopsConnect::TimeoutError, response if message['Timeout expired']
55
+
50
56
  raise TopsConnect::InternalError, response
51
57
  else
52
58
  # As far as I'm aware, Tops does not return 100 - 199 or 201 - 399.
@@ -54,28 +60,4 @@ module TopsConnect
54
60
  end
55
61
  end
56
62
  end
57
-
58
- class ApiError < ::RuntimeError
59
- def initialize(response)
60
- @response = response
61
- end
62
-
63
- def to_s
64
- format(
65
- '%{code}: %{message} (%{uri})',
66
- code: @response.code,
67
- message: @response.parsed_response&.dig('Message'),
68
- uri: @response.request.last_uri.to_s
69
- )
70
- end
71
- end
72
-
73
- class ClientError < ApiError
74
- end
75
-
76
- class NotFoundError < ClientError
77
- end
78
-
79
- class InternalError < ApiError
80
- end
81
63
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module TopsConnect
3
+ class ApiError < ::RuntimeError
4
+ def initialize(response)
5
+ @response = response
6
+ end
7
+
8
+ def to_s
9
+ format(
10
+ '%{code}: %{message} (%{uri})',
11
+ code: @response.code,
12
+ message: @response.parsed_response&.dig('Message'),
13
+ uri: @response.request.last_uri.to_s
14
+ )
15
+ end
16
+ end
17
+
18
+ # The client submitted invalid information.
19
+ class ClientError < ApiError
20
+ end
21
+
22
+ # A request was made for a key/query that doesn't exist.
23
+ class NotFoundError < ClientError
24
+ end
25
+
26
+ # Something happened but we don't know what and it's probably not our fault.
27
+ class InternalError < ApiError
28
+ end
29
+
30
+ # The API took too long to respond, but everything might be fine later.
31
+ class TimeoutError < InternalError
32
+ end
33
+ end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module TopsConnect
3
- VERSION = '0.4.2.1'
3
+ VERSION = '0.4.3'
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tops_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steven Hoffman
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-01-28 00:00:00.000000000 Z
11
+ date: 2017-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -102,6 +102,7 @@ files:
102
102
  - lib/tops_connect/communities.rb
103
103
  - lib/tops_connect/community.rb
104
104
  - lib/tops_connect/configuration.rb
105
+ - lib/tops_connect/errors.rb
105
106
  - lib/tops_connect/owner.rb
106
107
  - lib/tops_connect/owners.rb
107
108
  - lib/tops_connect/properties.rb