seatsio 51.2.0 → 51.4.0

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: 7b143c840563592cd811b25dc8f513824d320779fb338b82dc41fb4d48051514
4
- data.tar.gz: 8461ff05156f8707ccd584ee44afa4fc12968d7b13542ef047834f1205150f42
3
+ metadata.gz: 56a644926444297963f2f3bf83f06766072cfaab7b6964e0e5e8e2e3eb22842d
4
+ data.tar.gz: 723050a281e26c7c44688d947d2b6cd7228e5849ac991c1f9d3e929cc2a375a7
5
5
  SHA512:
6
- metadata.gz: 73e231273b968a3ee2ed445d19d3401fa20097e780fe3ade0d61973c3a17875840a83a937b85bb886f7fe2a5bccbc263cff1a5b553d6416c3b8e3b753a2c2951
7
- data.tar.gz: 9b06c799bd186379f294b5d3d003b3dc0631025cd982cdd93e07a79782480039ceeff959b73e44d4244acd77c4fde40d74ae7b5dd5ec2ef495146111d32b3e94
6
+ metadata.gz: 8ba324ca8a888103228ddbfa77c88f996e6bd0a72bf92cdfc8f40084d30999c1cd2b724b25c9b3245011ec22873ba250b45170c877c756772e1880359f36a417
7
+ data.tar.gz: 516680e34fef8abd807f9095e9b72f18ba74523be06ff123d43c572d63eca1547b2a4a5e21ba3c60f28cbaf52d41a3d09cea5594e37492f57ec9b8f7824033eb
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- seatsio (51.2.0)
4
+ seatsio (51.4.0)
5
5
  rest-client (~> 2.0, >= 2.0.2)
6
6
 
7
7
  GEM
@@ -21,7 +21,7 @@ GEM
21
21
  mime-types (3.5.2)
22
22
  mime-types-data (~> 3.2015)
23
23
  mime-types-data (3.2024.0702)
24
- minitest (5.25.2)
24
+ minitest (5.25.4)
25
25
  netrc (0.11.0)
26
26
  parallel (1.26.3)
27
27
  parallel_tests (4.7.2)
@@ -6,6 +6,9 @@ module Seatsio
6
6
  class RateLimitExceededException < SeatsioException
7
7
  end
8
8
 
9
+ class BestAvailableObjectsNotFoundException < SeatsioException
10
+ end
11
+
9
12
  class NoMorePagesException < SeatsioException
10
13
  end
11
14
 
@@ -49,11 +49,7 @@ module Seatsio
49
49
  rescue RestClient::NotFound => e
50
50
  raise Exception::NotFoundException.new(e.response)
51
51
  rescue RestClient::ExceptionWithResponse => e
52
- if e.response.code == 429
53
- raise Exception::RateLimitExceededException.new(e.response)
54
- else
55
- raise Exception::SeatsioException.new(e.response)
56
- end
52
+ handle_exception(e.response)
57
53
  rescue RestClient::Exceptions::Timeout
58
54
  raise Exception::SeatsioException.new("Timeout ERROR")
59
55
  rescue SocketError
@@ -94,5 +90,30 @@ module Seatsio
94
90
  def delete(endpoint, payload = {})
95
91
  execute(:delete, endpoint, payload)
96
92
  end
93
+
94
+ private
95
+
96
+ def handle_exception(response)
97
+ if response.code == 429
98
+ raise Exception::RateLimitExceededException.new(response)
99
+ end
100
+
101
+ content_type = response.headers[:content_type]
102
+ if content_type&.include?("application/json")
103
+ parsed_exception = JSON.parse(response.body, symbolize_names: true)
104
+ if best_available_objects_not_found?(parsed_exception[:errors])
105
+ raise Exception::BestAvailableObjectsNotFoundException.new(response)
106
+ else
107
+ raise Exception::SeatsioException.new(response)
108
+ end
109
+ else
110
+ raise Exception::SeatsioException.new(response)
111
+ end
112
+ end
113
+
114
+ def best_available_objects_not_found?(errors)
115
+ errors.any? { |error| error[:code] == "BEST_AVAILABLE_OBJECTS_NOT_FOUND" }
116
+ end
117
+
97
118
  end
98
119
  end
@@ -1,3 +1,3 @@
1
1
  module Seatsio
2
- VERSION = "51.2.0"
2
+ VERSION = "51.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seatsio
3
3
  version: !ruby/object:Gem::Version
4
- version: 51.2.0
4
+ version: 51.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seats.io
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-12-02 00:00:00.000000000 Z
11
+ date: 2025-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client