tickethub 0.3.4 → 0.3.6

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: 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