tickethub 0.3.4 → 0.3.6

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
  SHA1:
3
- metadata.gz: dc674ae1eedf5bbb77d957c44a261c2fb1c223b2
4
- data.tar.gz: d74451b388632f60e6f5769d15758c4970c33abc
3
+ metadata.gz: 0129a4017c1ad6b4640a0b55ca6d59a3bc5db87f
4
+ data.tar.gz: c14dc2b3470525f5781706c3cc75c6d23b101088
5
5
  SHA512:
6
- metadata.gz: 8dc1c2eb814db7a56556e5894bf85f427a61d0f44aa38c2c75a5a7c68abc2de11ecbbc40c55c3b807429f6f912d849c67eff25212cbd6d1d632510976e0e26fd
7
- data.tar.gz: 01646f5738f3cb4bbdb99063e8fbcb7789738c8b88a562478e1fc6fcbbfbfbf9feb2d04fba54dbbfeef7e4ef9ce86cdf380661b08e17669ae39fa51e8d0198e3
6
+ metadata.gz: 845941d4a3421c5285fe415fdc3277d3a66b442ff58e06167e336beffb5daadd21c6a76802306c3de7b9300be49b222b91cecd4540c87d068573f724e8044318
7
+ data.tar.gz: af123871cbd0e2fd92ca975ed6d01af612c374c1fae90c9549c3225af61ac68db60fc13a5ea4858d3b67a60a390864a1aa5e83c1afe7ebb44c46a879dcfabb6e
@@ -52,12 +52,6 @@ module Tickethub
52
52
  # 404 Not Found
53
53
  class ResourceNotFound < ClientError; end # :nodoc:
54
54
 
55
- # 409 Conflict
56
- class ResourceConflict < ClientError; end # :nodoc:
57
-
58
- # 410 Gone
59
- class ResourceGone < ClientError; end # :nodoc:
60
-
61
55
  # 422 Invalid
62
56
  class ResourceInvalid < ClientError; end # :nodoc:
63
57
 
@@ -1,5 +1,12 @@
1
+ require 'securerandom'
2
+
1
3
  module Tickethub
2
4
  class Request
5
+
6
+ SAFE_TO_RETRY = [408, 502, 503, 504].freeze
7
+ MAXIMUM_RETRIES = 6.freeze
8
+ DEFAULT_TIMEOUT = 5.freeze
9
+
3
10
  attr_reader :options, :format, :url
4
11
  attr_accessor :params, :body, :method, :headers
5
12
 
@@ -7,7 +14,8 @@ module Tickethub
7
14
  attr_accessor :proxy, :user, :password, :auth_type, :timeout, :ssl_options
8
15
 
9
16
  def initialize(url, options = {})
10
- @url = url.to_s
17
+ @url = url.to_s
18
+ @id = SecureRandom.uuid
11
19
 
12
20
  @options = options
13
21
  @options.each do |key, val|
@@ -15,6 +23,7 @@ module Tickethub
15
23
  send(method, val) if respond_to?(method)
16
24
  end
17
25
 
26
+ self.timeout ||= DEFAULT_TIMEOUT
18
27
  self.method ||= :get
19
28
  self.params ||= {}
20
29
  self.headers ||= {}
@@ -61,6 +70,12 @@ module Tickethub
61
70
 
62
71
  Response.new(result)
63
72
 
73
+ rescue TimeoutError => err
74
+ raise if retries == MAXIMUM_RETRIES - 1
75
+ execute retries + 1
76
+ rescue ConnectionError => err
77
+ raise if ! SAFE_TO_RETRY.member?(err.response.code) || retries == MAXIMUM_RETRIES - 1
78
+ execute retries + 1
64
79
  rescue Redirection => error
65
80
  raise error unless error.response['Location']
66
81
 
@@ -107,6 +122,7 @@ module Tickethub
107
122
  auth_headers
108
123
  .merge(content_type_headers)
109
124
  .merge(headers)
125
+ .merge('X-Request-ID' => @id)
110
126
  end
111
127
 
112
128
  def query_path
@@ -5,8 +5,13 @@ module Tickethub
5
5
  polymorphic 'ticket'
6
6
 
7
7
  require_relative '../ticket'
8
+ require_relative '../tier'
9
+ require_relative '../scan'
8
10
 
9
11
  collection :tickets, Supplier::Ticket
12
+ collection :tiers, Supplier::Tier
13
+ collection :scans, Supplier::Scan
14
+
10
15
  attribute :valid_from, type: :datetime
11
16
  end
12
17
  end
@@ -4,10 +4,10 @@ module Tickethub
4
4
  class Supplier::Scan < Resource
5
5
  path '/supplier/scans'
6
6
 
7
- require_relative 'scan'
7
+ require_relative 'ticket'
8
8
  require_relative 'user'
9
9
 
10
- association :scan, Supplier::Scan
10
+ collection :tickets, Supplier::Ticket
11
11
  association :user, Supplier::User
12
12
 
13
13
  attribute :at, type: :datetime
@@ -1,3 +1,3 @@
1
1
  module Tickethub
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.6'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tickethub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Morgan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-22 00:00:00.000000000 Z
11
+ date: 2015-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler