quicktravel_client 3.6.1 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +5 -5
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +4 -2
  4. data/CHANGELOG.md +12 -3
  5. data/README.md +1 -1
  6. data/lib/quick_travel.rb +2 -0
  7. data/lib/quick_travel/adapter.rb +8 -58
  8. data/lib/quick_travel/address.rb +4 -2
  9. data/lib/quick_travel/adjustment.rb +3 -2
  10. data/lib/quick_travel/background_check.rb +4 -2
  11. data/lib/quick_travel/bed_configuration.rb +3 -2
  12. data/lib/quick_travel/bed_requirement.rb +3 -2
  13. data/lib/quick_travel/booking.rb +10 -1
  14. data/lib/quick_travel/checkout.rb +1 -1
  15. data/lib/quick_travel/client.rb +3 -2
  16. data/lib/quick_travel/contact.rb +4 -1
  17. data/lib/quick_travel/init_from_hash.rb +54 -1
  18. data/lib/quick_travel/passenger.rb +7 -2
  19. data/lib/quick_travel/passenger_price_break.rb +3 -2
  20. data/lib/quick_travel/passenger_split.rb +5 -0
  21. data/lib/quick_travel/property.rb +2 -1
  22. data/lib/quick_travel/property_facility.rb +3 -2
  23. data/lib/quick_travel/reservation.rb +4 -0
  24. data/lib/quick_travel/resource.rb +11 -2
  25. data/lib/quick_travel/resource_category.rb +5 -1
  26. data/lib/quick_travel/resource_group.rb +9 -0
  27. data/lib/quick_travel/room_facility.rb +3 -2
  28. data/lib/quick_travel/route_stop.rb +11 -2
  29. data/lib/quick_travel/service.rb +3 -2
  30. data/lib/quick_travel/version.rb +1 -1
  31. data/quicktravel_client.gemspec +2 -1
  32. data/spec/adapter_spec.rb +2 -2
  33. data/spec/booking_spec.rb +14 -6
  34. data/spec/checkout_spec.rb +182 -0
  35. data/spec/product_spec.rb +5 -5
  36. data/spec/region_spec.rb +2 -2
  37. data/spec/reservation_spec.rb +2 -6
  38. data/spec/support/cassettes/accommodation_reserve.yml +109 -51
  39. data/spec/support/cassettes/basic_product_scheduled_trips.yml +19 -33
  40. data/spec/support/cassettes/basic_product_scheduled_trips_multi_sector.yml +19 -27
  41. data/spec/support/cassettes/basic_product_scheduled_trips_unbookable.yml +9 -11
  42. data/spec/support/cassettes/booking_activate.yml +25 -28
  43. data/spec/support/cassettes/booking_cancel.yml +25 -28
  44. data/spec/support/cassettes/booking_create.yml +14 -15
  45. data/spec/support/cassettes/booking_create_accommodation.yml +62 -0
  46. data/spec/support/cassettes/booking_documents.yml +9 -11
  47. data/spec/support/cassettes/booking_non_existant.yml +8 -10
  48. data/spec/support/cassettes/booking_price_changes.yml +19 -17
  49. data/spec/support/cassettes/booking_show.yml +13 -14
  50. data/spec/support/cassettes/booking_update.yml +25 -27
  51. data/spec/support/cassettes/booking_with_documents.yml +35 -36
  52. data/spec/support/cassettes/booking_with_nested_attributes.yml +61 -61
  53. data/spec/support/cassettes/booking_with_price_changes.yml +27 -26
  54. data/spec/support/cassettes/checkout_client_token.yml +11 -13
  55. data/spec/support/cassettes/countries.yml +15 -93
  56. data/spec/support/cassettes/country_all.yml +15 -93
  57. data/spec/support/cassettes/create_reservation_fail.yml +8 -10
  58. data/spec/support/cassettes/create_reservation_with_booking.yml +15 -16
  59. data/spec/support/cassettes/locations.yml +12 -14
  60. data/spec/support/cassettes/opal_modern_pay_failed_booking.yml +62 -0
  61. data/spec/support/cassettes/opal_modern_pay_failed_create.yml +59 -0
  62. data/spec/support/cassettes/opal_modern_pay_failed_update.yml +57 -0
  63. data/spec/support/cassettes/opal_modern_pay_successful_booking.yml +62 -0
  64. data/spec/support/cassettes/opal_modern_pay_successful_response.yml +59 -0
  65. data/spec/support/cassettes/opal_modern_pay_successful_update_response.yml +59 -0
  66. data/spec/support/cassettes/opal_pay.yml +59 -0
  67. data/spec/support/cassettes/opal_pay_booking.yml +62 -0
  68. data/spec/support/cassettes/passenger_all.yml +11 -13
  69. data/spec/support/cassettes/payment_info.yml +9 -11
  70. data/spec/support/cassettes/price_quote.yml +17 -21
  71. data/spec/support/cassettes/product_date_range_bookability.yml +32 -48
  72. data/spec/support/cassettes/product_show.yml +13 -17
  73. data/spec/support/cassettes/product_show_as_agent.yml +14 -22
  74. data/spec/support/cassettes/product_type_all.yml +16 -14
  75. data/spec/support/cassettes/product_type_resource_categories.yml +9 -11
  76. data/spec/support/cassettes/product_type_resource_categories_tickets.yml +12 -14
  77. data/spec/support/cassettes/product_type_routes.yml +14 -16
  78. data/spec/support/cassettes/property.yml +16 -18
  79. data/spec/support/cassettes/property_types.yml +12 -14
  80. data/spec/support/cassettes/region_show.yml +11 -13
  81. data/spec/support/cassettes/reservation_resource.yml +62 -0
  82. data/spec/support/cassettes/reservation_with_extra_picks.yml +54 -60
  83. data/spec/support/cassettes/resource_category_all.yml +12 -14
  84. data/spec/support/cassettes/resource_category_all_for_product_type_8.yml +11 -13
  85. data/spec/support/cassettes/resource_fare_bases.yml +18 -23
  86. data/spec/support/cassettes/resource_show.yml +15 -17
  87. data/spec/support/cassettes/resource_with_price.yml +16 -18
  88. data/spec/support/cassettes/settings_basic.yml +9 -11
  89. data/spec/support/cassettes/tenant_switcher.yml +31 -27
  90. data/spec/support/cassettes/wrong_url.yml +25 -46
  91. data/spec/support/coverage_loader.rb +1 -1
  92. metadata +43 -7
@@ -4,5 +4,9 @@ module QuickTravel
4
4
  class ResourceCategory < Adapter
5
5
  self.api_base = '/api/resource_categories'
6
6
  self.lookup = true
7
- end
7
+
8
+ def product_type
9
+ QuickTravel::ProductType.find(product_type_id)
10
+ end
11
+ end
8
12
  end
@@ -0,0 +1,9 @@
1
+ module QuickTravel
2
+ class ResourceGroup
3
+ include QuickTravel::InitFromHash
4
+
5
+ def product_type
6
+ ProductType.find(product_type_id)
7
+ end
8
+ end
9
+ end
@@ -1,6 +1,7 @@
1
- require 'quick_travel/adapter'
1
+ require 'quick_travel/init_from_hash'
2
2
 
3
3
  module QuickTravel
4
- class RoomFacility < Adapter
4
+ class RoomFacility
5
+ include QuickTravel::InitFromHash
5
6
  end
6
7
  end
@@ -1,6 +1,15 @@
1
- require 'quick_travel/adapter'
1
+ require 'quick_travel/init_from_hash'
2
2
 
3
3
  module QuickTravel
4
- class RouteStop < Adapter
4
+ class RouteStop
5
+ include QuickTravel::InitFromHash
6
+
7
+ def stop
8
+ Stop.new({ id: stop_id, name: name, code: code, address: address })
9
+ end
10
+ end
11
+
12
+ class Stop
13
+ include QuickTravel::InitFromHash
5
14
  end
6
15
  end
@@ -1,6 +1,7 @@
1
- require 'quick_travel/adapter'
1
+ require 'quick_travel/init_from_hash'
2
2
 
3
3
  module QuickTravel
4
- class Service < Adapter
4
+ class Service
5
+ include QuickTravel::InitFromHash
5
6
  end
6
7
  end
@@ -1,3 +1,3 @@
1
1
  module QuickTravel
2
- VERSION = '3.6.1'
2
+ VERSION = '3.7.0'
3
3
  end
@@ -16,11 +16,12 @@ Gem::Specification.new do |spec|
16
16
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
17
  spec.require_paths = ['lib']
18
18
 
19
- spec.add_dependency 'httparty', '~> 0.14'
19
+ spec.add_dependency 'httparty', '0.15.7' # Bug in >16 relating to nested parameters
20
20
  spec.add_dependency 'json'
21
21
  spec.add_dependency 'activesupport', '>= 2.0.0'
22
22
  spec.add_dependency 'facets'
23
23
  spec.add_dependency 'money', '>= 3.0', '< 6.0' # 6.0 starts to deprecate/split
24
+ spec.add_dependency 'will_paginate'
24
25
 
25
26
  spec.add_development_dependency 'bundler', '~> 1.7'
26
27
  spec.add_development_dependency 'rake'
data/spec/adapter_spec.rb CHANGED
@@ -37,7 +37,7 @@ describe QuickTravel::Adapter do
37
37
  end
38
38
 
39
39
  context 'when response non standard' do
40
- let(:url) { 'http://www.google.com' }
40
+ let(:url) { 'https://httpstat.us/418' }
41
41
 
42
42
  let(:adapter_response) {
43
43
  VCR.use_cassette 'wrong_url' do
@@ -48,7 +48,7 @@ describe QuickTravel::Adapter do
48
48
  specify do
49
49
  expect { adapter_response }.to raise_error(
50
50
  QuickTravel::AdapterError,
51
- /That’s all we know/
51
+ /418 I'm a teapot/
52
52
  )
53
53
  end
54
54
  end
data/spec/booking_spec.rb CHANGED
@@ -65,7 +65,7 @@ describe QuickTravel::Booking do
65
65
  VCR.use_cassette('booking_show') do
66
66
  b = QuickTravel::Booking.find(@booking.id)
67
67
  expect(b.payment_types).to be_an_instance_of Array
68
- expect(b.payment_types.size).to eq 3
68
+ expect(b.payment_types.size).to eq 4
69
69
  expect(b.payment_types.first).to be_an_instance_of QuickTravel::PaymentType
70
70
  expect(b.payments).to be_an_instance_of Array
71
71
  expect(b.payments.size).to eq 0
@@ -144,10 +144,12 @@ end
144
144
 
145
145
  describe QuickTravel::Booking, 'when booking accommodation' do
146
146
  let(:booking) {
147
- VCR.use_cassette('booking_with_documents') {
148
- QuickTravel::Booking.find(1)
149
- }
147
+ VCR.use_cassette('booking_create_accommodation') do
148
+ QuickTravel.config.version = 4
149
+ QuickTravel::Booking.create
150
+ end
150
151
  }
152
+
151
153
  let(:reservation) {
152
154
  VCR.use_cassette('accommodation_reserve') do
153
155
  booking.accommodation_reserve(
@@ -157,14 +159,20 @@ describe QuickTravel::Booking, 'when booking accommodation' do
157
159
  first_travel_date: '01/03/2016',
158
160
  last_travel_date: '02/03/2016'
159
161
  )
160
- booking.reservations.detect { |reservation| reservation.resource.name == 'Executive Room' }
162
+ QuickTravel::Booking.find(booking.id).reservations.detect { |reservation| reservation.resource.name == 'Executive Room' }
163
+ end
164
+ }
165
+
166
+ let(:resource) {
167
+ VCR.use_cassette('reservation_resource') do
168
+ QuickTravel::Resource.find(reservation.resource_id)
161
169
  end
162
170
  }
163
171
 
164
172
  it 'should create acommodation reservation' do
165
173
  expect(reservation.first_travel_date).to eq '2016-03-01'.to_date
166
174
  expect(reservation.last_travel_date).to eq '2016-03-02'.to_date
167
- expect(reservation.resource.name).to eq 'Executive Room'
175
+ expect(resource.name).to eq 'Executive Room'
168
176
  expect(reservation.passenger_ids).to eq booking.passenger_ids
169
177
  end
170
178
  end
@@ -12,4 +12,186 @@ describe QuickTravel::Checkout do
12
12
  expect(token.keys).to eq [:client_token]
13
13
  expect(token[:client_token]).to match /^[0-9A-Za-z\=]+$/
14
14
  end
15
+
16
+ context 'Modern Opal Pay' do
17
+ context 'failed payment' do
18
+ let!(:booking) {
19
+ VCR.use_cassette('opal_modern_pay_failed_booking') do
20
+ QuickTravel.config.version = 4
21
+ QuickTravel::Booking.create
22
+ end
23
+ }
24
+ let(:create_payment_request) {
25
+ {
26
+ booking_id: booking.id,
27
+ payment: {
28
+ payment_type_id: 10,
29
+ amount_in_cents: 10,
30
+ uid: 'modern-opal-failed-uid',
31
+ comment: 'Test Opal Payment'
32
+ }
33
+ }
34
+ }
35
+
36
+ let!(:create_payment_response) {
37
+ VCR.use_cassette('opal_modern_pay_failed_create') do
38
+ QuickTravel::Checkout.create(create_payment_request)
39
+ end
40
+ }
41
+
42
+ let(:update_payment_request) {
43
+ {
44
+ gateway_response: {
45
+ raw_response: '{
46
+ "CardNumber": 3085227007682330,
47
+ "CardBalance": 6546,
48
+ "CardSequenceNumber": 55,
49
+ "CILAmount": 0,
50
+ "AuthorizedAmount": 890,
51
+ "SalesReferenceNumber": 53183943,
52
+ "TransactionDTM": "2018-01-04T09:00:43.106",
53
+ "VoidTransactionReferenceNumber": 1271099697,
54
+ "CardBlockState": false,
55
+ "AutoloadAmount": 0
56
+ }',
57
+ meta_data: {
58
+ applicationInstanceId: 101166,
59
+ operatorId: 'an_operator'
60
+ },
61
+ success: false
62
+ }
63
+ }
64
+ }
65
+
66
+ let(:update_payment_response) {
67
+ VCR.use_cassette('opal_modern_pay_failed_update') do
68
+ QuickTravel::Checkout.update(create_payment_response.id, update_payment_request)
69
+ end
70
+ }
71
+
72
+ let(:expected_create_attributes) { { completable: false } }
73
+ let(:expected_update_attributes) { { successful: false } }
74
+ it 'should update correctly' do
75
+ expect(create_payment_response).to have_attributes(expected_create_attributes)
76
+ expect(update_payment_response).to have_attributes(expected_update_attributes)
77
+ end
78
+ end
79
+
80
+ context 'successful payment' do
81
+ let!(:booking) {
82
+ VCR.use_cassette('opal_modern_pay_successful_booking') do
83
+ QuickTravel.config.version = 4
84
+ QuickTravel::Booking.create
85
+ end
86
+ }
87
+ let(:payment_create_request) {
88
+ {
89
+ booking_id: booking.id,
90
+ payment: {
91
+ payment_type_id: 10,
92
+ amount_in_cents: 10,
93
+ uid: 'modern-opal-uid',
94
+ comment: 'Test Opal Payment'
95
+ }
96
+ }
97
+ }
98
+
99
+ let!(:create_payment_response) {
100
+ VCR.use_cassette('opal_modern_pay_successful_response') do
101
+ QuickTravel::Checkout.create(payment_create_request)
102
+ end
103
+ }
104
+
105
+ let(:update_payment_request) {
106
+ {
107
+ gateway_response: {
108
+ raw_response: '{
109
+ "CardNumber": 3085227007682330,
110
+ "CardBalance": 6546,
111
+ "CardSequenceNumber": 55,
112
+ "CILAmount": 0,
113
+ "AuthorizedAmount": 890,
114
+ "SalesReferenceNumber": 53183943,
115
+ "TransactionDTM": "2018-01-04T09:00:43.106",
116
+ "TransactionReferenceNumber": 1271099697,
117
+ "CardBlockState": false,
118
+ "AutoloadAmount": 0
119
+ }',
120
+ meta_data: {
121
+ applicationInstanceId: 101166,
122
+ operatorId: 'an_operator'
123
+ },
124
+ success: true
125
+ }
126
+ }
127
+ }
128
+
129
+ let(:update_payment_response) {
130
+ VCR.use_cassette('opal_modern_pay_successful_update_response') do
131
+ QuickTravel::Checkout.update(create_payment_response.id, update_payment_request)
132
+ end
133
+ }
134
+
135
+ let(:expected_create_attributes) { { completable: false } }
136
+ let(:expected_update_attributes) { { successful: true } }
137
+ it 'should update correctly' do
138
+ expect(create_payment_response).to have_attributes(expected_create_attributes)
139
+ expect(update_payment_response).to have_attributes(expected_update_attributes)
140
+ end
141
+ end
142
+ end
143
+
144
+ context 'Opal Pay' do
145
+ let(:booking) {
146
+ VCR.use_cassette('opal_pay_booking') do
147
+ QuickTravel.config.version = 4
148
+ QuickTravel::Booking.create
149
+ end
150
+ }
151
+
152
+ let(:payment_create_request) {
153
+ {
154
+ booking_id: booking.id,
155
+ payment: {
156
+ gateway_response: '{
157
+ "CardNumber": 3085227007682330,
158
+ "CardBalance": 6546,
159
+ "CardSequenceNumber": 55,
160
+ "CILAmount": 0,
161
+ "AuthorizedAmount": 890,
162
+ "SalesReferenceNumber": 53183943,
163
+ "TransactionDTM": "2018-01-04T09:00:43.106",
164
+ "TransactionReferenceNumber": 1271099697,
165
+ "CardBlockState": false,
166
+ "AutoloadAmount": 0
167
+ }',
168
+ meta_data: {
169
+ applicationInstanceId: 101166,
170
+ operatorId: 'an_operator'
171
+ },
172
+ payment_type_id: 10,
173
+ amount_in_cents: 10,
174
+ uid: 'opal-uid',
175
+ comment: 'Test Opal Payment'
176
+ }
177
+ }
178
+ }
179
+
180
+ subject(:response) {
181
+ VCR.use_cassette('opal_pay') do
182
+ QuickTravel::Checkout.create(payment_create_request)
183
+ end
184
+ }
185
+
186
+ let(:expected_attributes) {
187
+ {
188
+ completable: true,
189
+ completed: true,
190
+ progress: 'completed',
191
+ successful: true
192
+ }
193
+ }
194
+
195
+ it { is_expected.to have_attributes(expected_attributes) }
196
+ end
15
197
  end
data/spec/product_spec.rb CHANGED
@@ -99,13 +99,13 @@ describe QuickTravel::Product do
99
99
  it { should eq expected_price } # $200 for 2 pax, $50 for extra passenger
100
100
  end
101
101
 
102
- context 'adjustments' do
103
- subject(:adjustments) { pricing_details.adjustments_to_apply }
102
+ context 'applied rules' do
103
+ subject(:rules) { pricing_details.applied_rules }
104
104
  it { should be_an_instance_of Array }
105
105
 
106
- context 'first adjustment' do
107
- subject(:adjustment) { adjustments.first }
108
- it { should be_an_instance_of Hash }
106
+ context 'first rule' do
107
+ subject(:rule) { rules.first }
108
+ it { should be_an_instance_of String }
109
109
  end
110
110
  end
111
111
  end
data/spec/region_spec.rb CHANGED
@@ -8,10 +8,10 @@ describe QuickTravel::Region do
8
8
  it 'should find a first instance of region from QuickTravel' do
9
9
  VCR.use_cassette('region_show') do
10
10
  expect(subject).to be_an_instance_of QuickTravel::Region
11
- expect(subject.id).to be_an_instance_of Fixnum
11
+ expect(subject.id).to be_a_kind_of Integer
12
12
  expect(subject.name).to be_an_instance_of String
13
13
  expect(subject.location_ids).to be_an_instance_of Array
14
- expect(subject.location_ids[0]).to be_an_instance_of Fixnum
14
+ expect(subject.location_ids[0]).to be_a_kind_of Integer
15
15
  end
16
16
  end
17
17
  end
@@ -10,11 +10,7 @@ describe QuickTravel::Reservation do
10
10
  first_travel_date: '2016-03-01',
11
11
  passenger_types_numbers: { '1' => '2', '2' => '1' }
12
12
  )
13
- expect(reservation.booking_id).to eq 4 # based on running ALL specs
14
- # from a fresh bootstrap.sql
15
- # bootstrap.sql has 2 bookings
16
- # Plus 3rd booking created in booking_spec
17
- # Plus 4th booking created here
13
+ expect(reservation.booking_id).not_to eq 0
18
14
  end
19
15
  end
20
16
 
@@ -35,7 +31,7 @@ describe QuickTravel::Reservation do
35
31
  resource_names = nil
36
32
  VCR.use_cassette('reservation_with_extra_picks') do
37
33
  @booking = QuickTravel::Booking.find(1)
38
- @reservation = @booking.reservations.first
34
+ @reservation = @booking.reservations.last
39
35
  sub_reservations = @reservation.sub_reservations
40
36
  resource_names = sub_reservations.map(&:resource).map(&:name)
41
37
  end
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/reservation_for/accommodations/create_or_update.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: reservations[passenger_ids][]=1&reservations[passenger_ids][]=2&reservations[resource_id]=6&reservations[bed_configuration_id]=1&reservations[first_travel_date]=01%2F03%2F2016&reservations[last_travel_date]=02%2F03%2F2016&booking_id=1&access_key=<QT_KEY>
8
+ string: reservations[resource_id]=6&reservations[bed_configuration_id]=1&reservations[first_travel_date]=01%2F03%2F2016&reservations[last_travel_date]=02%2F03%2F2016&booking_id=4&access_key=<QT_KEY>
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -17,23 +17,19 @@ http_interactions:
17
17
  P3p:
18
18
  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
19
19
  Content-Type:
20
- - application/json; charset=utf-8
21
- X-Ua-Compatible:
22
- - IE=Edge,chrome=1
23
- Etag:
24
- - '"7215ee9c7d9dc229d2921a40e899ec5f"'
20
+ - application/json
25
21
  Cache-Control:
26
- - max-age=0, private, must-revalidate
22
+ - no-cache
27
23
  X-Request-Id:
28
- - 8483181abc52a31a2826eb6ff745cd65
24
+ - c6f65171-2281-4438-b378-06608bb5251c
29
25
  X-Runtime:
30
- - '0.583677'
31
- Vary:
32
- - Origin
26
+ - '1.192269'
33
27
  Date:
34
- - Fri, 01 Jan 2016 04:38:24 GMT
28
+ - Fri, 01 Jan 2016 02:32:13 GMT
35
29
  X-Rack-Cache:
36
30
  - invalidate, pass
31
+ Vary:
32
+ - Origin
37
33
  X-Content-Type-Options:
38
34
  - nosniff
39
35
  X-Download-Options:
@@ -47,20 +43,20 @@ http_interactions:
47
43
  Server:
48
44
  - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
49
45
  Content-Length:
50
- - '1'
46
+ - '0'
51
47
  Connection:
52
48
  - Keep-Alive
53
49
  Set-Cookie:
54
- - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTZhYjQyOTVjMGExNTJkZTM3MThhODk2YmY0MDQ1NDQ0BjsAVEkiCXVzZXIGOwBGaQY%3D--d7a6c585df1323901ec4d571ae9e7b92a3623e1f;
50
+ - _session_id=dUVxdWo3cFFXeWFReWJoaGFPM2JQcmpVL0RqVFVvWUlkZjZ5Wm5aSkZhT0dyWWFDSVJZUWVWL0NXUkRaZGU5c2h0TEl6allubWhhQk05NzFwMFNHRmpySTdPUHZPdkNBKzk3cU9DcjNsNnM9LS12YmxYcjJmYml4aVlnL3F3ZEZFUXp3PT0%3D--f2e2ac7d49461e937a4c5caa8713046af63442c2;
55
51
  path=/; HttpOnly
56
52
  body:
57
53
  encoding: UTF-8
58
- string: " "
54
+ string: ''
59
55
  http_version:
60
- recorded_at: Wed, 08 Feb 2017 00:35:12 GMT
56
+ recorded_at: Wed, 21 Mar 2018 04:40:20 GMT
61
57
  - request:
62
58
  method: get
63
- uri: http://test.qt.sealink.com.au:8080/api/bookings/1.json
59
+ uri: http://test.qt.sealink.com.au:8080/api/bookings/4.json
64
60
  body:
65
61
  encoding: UTF-8
66
62
  string: access_key=<QT_KEY>
@@ -76,22 +72,20 @@ http_interactions:
76
72
  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
77
73
  Content-Type:
78
74
  - application/json; charset=utf-8
79
- X-Ua-Compatible:
80
- - IE=Edge,chrome=1
81
75
  Etag:
82
- - '"ea2f8a56e770a78eec327ba979588850"'
76
+ - W/"aa50e1d763ad0b4a59803613427e6867"
83
77
  Cache-Control:
84
78
  - max-age=0, private, must-revalidate
85
79
  X-Request-Id:
86
- - 7d3bf632051d184e80724dc59dba8b34
80
+ - daf1bf42-c376-4700-91a2-25a029fd9b2f
87
81
  X-Runtime:
88
- - '0.155058'
89
- Vary:
90
- - Origin
82
+ - '0.738630'
91
83
  Date:
92
- - Fri, 01 Jan 2016 04:38:25 GMT
84
+ - Fri, 01 Jan 2016 02:32:14 GMT
93
85
  X-Rack-Cache:
94
86
  - miss
87
+ Vary:
88
+ - Origin
95
89
  X-Content-Type-Options:
96
90
  - nosniff
97
91
  X-Download-Options:
@@ -105,28 +99,29 @@ http_interactions:
105
99
  Server:
106
100
  - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
107
101
  Content-Length:
108
- - '6280'
102
+ - '5932'
109
103
  Connection:
110
104
  - Keep-Alive
111
105
  Set-Cookie:
112
- - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWFmZWIxNmZkYjBjOTc0ZDQ3YzgxYmE3N2UyMTdlZTMzBjsAVEkiCXVzZXIGOwBGaQY%3D--b1bc261a811a392ee20584effaf23a3db290b279;
106
+ - _session_id=NVVTZG8xNE00bVZUUlV2Y3JMakdxeG9KbkI4MGljd2wwNGpQWTM2QU5iR0l6NWtsSnNoVHJRT2EwNkQyYzFtZ0JKa00zQlNqcXR2N0RiZXNLb0dkd29oNm1NMUJIWUJIeFhlT1VSSnRYR1E9LS0yV0F5UXBreVJIY1A0aUFoVndUZDhBPT0%3D--97882a9490c73e7d8d3f1e77f679bc614aee81bd;
113
107
  path=/; HttpOnly
114
108
  body:
115
109
  encoding: UTF-8
116
- string: '{"id":1,"state":"active","reference":"222223","public_comments":null,"internal_comments":null,"customer_contact_name":null,"customer_contact_phone":null,"customer_contact_mobile":null,"customer_contact_email":null,"currency_iso_code":"AUD","country_id":3,"post_code":"","referral_code_id":1,"external_identifier":null,"created_at":"2013-03-01T00:05:46+10:30","updated_at":"2016-01-01T15:08:24+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":20000,"nett_in_cents":20000,"gross_in_cents":20000,"commission_in_cents":0,"balance_in_cents":20000,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":null,"deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00+10:30"},"balance_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00+10:30"},"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","discardable_in":60,"inactivatable_in":10,"notices":{},"client":null,"passenger_ids":[1,2],"vehicle_ids":[],"reservation_ids":[13],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[{"id":1,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":1},{"id":2,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":2}],"vehicles_attributes":[],"reservations_attributes":[{"id":13,"booking_id":1,"description":"A
117
- basic studio room","comment":null,"active":true,"service_ids":[3,4],"resource_id":6,"quantity":null,"adjustments_attributes":[{"id":12,"gross_in_cents":-20000,"creator":{"active":true,"age":null,"business_number":null,"business_number_type":null,"created_at":"2013-03-01T00:00:02+10:30","creator_id":null,"currency_iso_code":"AUD","first_name":"administrator","gender":null,"id":1,"internal_staff":true,"internal_subdivision":false,"last_name":"administrator","name":"Administrator
118
- Administrator","notes":null,"remember_token":null,"remember_token_expires_at":null,"salt":null,"title":null,"updated_at":"2013-03-01T00:00:03+10:30","updator_id":null},"created_at":"2016-01-01T15:08:24+10:30","description":"50%
119
- Off","adjustable_item_type":"Reservation","adjustable_item_id":13,"adjustment_definition_id":1,"adjustment_category_id":1,"automatic":true}],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"bed_configuration":"1
120
- x Double and 1 x Single","product_type_id":2,"itinerary_footer":false,"fare_basis_set_id":12,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":6,"pick_up_info":null,"drop_off_info":null,"selection_name":"Hilton
121
- Hotel: Executive Room","product_name_underscore":"accommodation","resource_class_name_underscore":"accommodation","resource_class_name":"Accommodation","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"durational":true,"duration":2,"checkout_date":{"_type":"Date","_value":"2016-03-03"},"duration_units":"Nights","date_start_label":"In:","date_end_label":"Out:","accommodation_extra_picks":false,"expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
110
+ string: '{"id":4,"state":"new","reference":"222227","public_comments":null,"internal_comments":null,"customer_contact_name":null,"customer_contact_phone":null,"customer_contact_mobile":null,"customer_contact_email":null,"currency_iso_code":"AUD","country_id":14,"drop_off_option_id":null,"drop_off_location_id":null,"post_code":null,"referral_code_id":1,"external_identifier":null,"created_at":"2016-01-01T13:02:12.000+10:30","updated_at":"2016-01-01T13:02:13.000+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":20000,"nett_in_cents":20000,"gross_in_cents":20000,"commission_in_cents":0,"balance_in_cents":20000,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":"SeaLink","deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00.000+10:30"},"balance_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00.000+10:30"},"due":false,"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","unprintable_luggage_tags":false,"discardable_in":60,"inactivatable_in":10,"notices":{},"client":null,"passenger_ids":[],"vehicle_ids":[],"reservation_ids":[6],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[],"vehicles_attributes":[],"reservations_attributes":[{"id":6,"booking_id":4,"description":"A
111
+ basic studio room","comment":null,"active":true,"service_ids":[3,4],"resource_id":6,"quantity":null,"adjustments_attributes":[{"id":7,"gross_in_cents":-20000,"creator":{"id":1,"name":"Administrator
112
+ Administrator","age":null,"first_name":"administrator","last_name":"administrator","title":null,"gender":null,"created_at":null,"updated_at":null,"notes":null,"updator_id":null,"creator_id":null,"active":true,"internal_subdivision":false,"business_number":null,"business_number_type":null,"currency_iso_code":"AUD","access_type":2},"created_at":"2016-01-01T13:02:13.000+10:30","description":"50%
113
+ Off","adjustable_item_type":"Reservation","adjustable_item_id":6,"adjustment_definition_id":1,"adjustment_category_id":1,"automatic":true}],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"bed_configuration":"1
114
+ x Double and 1 x Single","product_type_id":2,"itinerary_footer":false,"fare_basis_set_id":12,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":null,"fare_basis_pointer_id":6,"pick_up_info":null,"drop_off_info":null,"selection_name":"Hilton
115
+ Hotel: Executive Room","product_name_underscore":"accommodation","resource_class_name_underscore":"accommodation","resource_class_name":"Accommodation","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"durational":true,"duration":2,"span":2,"checkout_date":{"_type":"Date","_value":"2016-03-03"},"duration_units":"Nights","date_start_label":"In:","date_end_label":"Out:","accommodation_extra_picks":false,"expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
122
116
  Priced as: Rack Rate","gross_including_packaged_item_in_cents":20000,"pre_adjusted_gross_including_packaged_item_in_cents":40000,"gross_in_cents":20000,"pre_adjusted_gross_in_cents":40000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":20000,"rules":[{"unique_name":"Test
123
- Discount Hilton","description":"","display_name":"Test Discount Hilton"}],"package":false,"sub_reservation_depth":0,"extra_pick":null,"child_resource":null,"pending_confirmation":false,"confirmation_request_fields":[],"report_reservation_changes":false,"vendor_pnr":null,"pick_up_information":null,"drop_off_information":null,"vendor_staff":null,"notes_for_vendor":null,"passenger_ids":[1,2],"passenger_splits":[{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":1,"consumer_splittable_id":13,"consumer_splittable_type":"Reservation","created_at":"2016-01-01T15:08:24+10:30","gross_in_cents":0,"id":23,"updated_at":"2016-01-01T15:08:24+10:30"},{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":2,"consumer_splittable_id":13,"consumer_splittable_type":"Reservation","created_at":"2016-01-01T15:08:24+10:30","gross_in_cents":0,"id":24,"updated_at":"2016-01-01T15:08:24+10:30"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1":0,"2":0}}],"adjustments_attributes":[],"payments_attributes":[],"payment_types_attributes":[{"id":5,"name":"master","description":"master","transaction_fee":"0.0","active":true,"position":2,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"MasterCard","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":4,"name":"visa","description":"visa","transaction_fee":"0.0","active":true,"position":3,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":7,"name":"PayPal","description":"Payments
124
- made via PayPal account","transaction_fee":"0.0","active":true,"position":6,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":"2013-03-01T00:00:03+10:30","updated_at":"2013-03-01T00:00:03+10:30","credit_card_brand":null,"payment_method":"paypal","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[]}'
117
+ Discount Hilton","description":"","display_name":"Test Discount Hilton"}],"package":false,"sub_reservation_depth":0,"extra_pick":null,"child_resource":null,"pending_confirmation":false,"confirmation_request_fields":[],"report_reservation_changes":false,"vendor_pnr":null,"pick_up_information":null,"drop_off_information":null,"vendor_staff":null,"notes_for_vendor":null,"passenger_ids":[],"passenger_splits":[],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{}}],"adjustments_attributes":[],"payments_attributes":[],"payment_types_attributes":[{"id":4,"name":"visa","description":"visa","transaction_fee":"0.0","active":true,"position":3,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":5,"name":"master","description":"master","transaction_fee":"0.0","active":true,"position":4,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":7,"name":"PayPal","description":"Payments
118
+ made via PayPal account","transaction_fee":"0.0","active":true,"position":6,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"paypal","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":10,"name":"Opal
119
+ Pay","description":"Opal Payments","transaction_fee":"0.0","active":true,"position":9,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"opal_pay","gateway":null,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":false,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[]}'
125
120
  http_version:
126
- recorded_at: Wed, 08 Feb 2017 00:35:12 GMT
121
+ recorded_at: Wed, 21 Mar 2018 04:40:21 GMT
127
122
  - request:
128
123
  method: get
129
- uri: http://test.qt.sealink.com.au:8080/resources/6.json
124
+ uri: http://test.qt.sealink.com.au:8080/api/bookings/4.json
130
125
  body:
131
126
  encoding: UTF-8
132
127
  string: access_key=<QT_KEY>
@@ -142,22 +137,85 @@ http_interactions:
142
137
  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
143
138
  Content-Type:
144
139
  - application/json; charset=utf-8
145
- X-Ua-Compatible:
146
- - IE=Edge,chrome=1
147
140
  Etag:
148
- - '"4d660ebe1fce6dba8cfe89a924383b21"'
141
+ - W/"aa50e1d763ad0b4a59803613427e6867"
149
142
  Cache-Control:
150
143
  - max-age=0, private, must-revalidate
151
144
  X-Request-Id:
152
- - befb6299b8e9da3e8c7c2be5741aa0ee
145
+ - 00bd9364-b63e-4cea-af27-0fe0688e24da
153
146
  X-Runtime:
154
- - '0.065444'
147
+ - '0.353520'
148
+ Date:
149
+ - Fri, 01 Jan 2016 02:32:14 GMT
150
+ X-Rack-Cache:
151
+ - miss
155
152
  Vary:
156
153
  - Origin
154
+ X-Content-Type-Options:
155
+ - nosniff
156
+ X-Download-Options:
157
+ - noopen
158
+ X-Frame-Options:
159
+ - sameorigin
160
+ X-Permitted-Cross-Domain-Policies:
161
+ - none
162
+ X-Xss-Protection:
163
+ - 1; mode=block
164
+ Server:
165
+ - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
166
+ Content-Length:
167
+ - '5932'
168
+ Connection:
169
+ - Keep-Alive
170
+ Set-Cookie:
171
+ - _session_id=ZUErbjdUa3VaRW9Cd1o4bkwvSi9rOVhSTTRYcmI4NEZGb25SSXZOeTU2YjB5WkR2L0lPTVhQUDR4MW1hODdEZHpwNzVQNFc3QWtZb1J6UFdCaHZsUWJZdVF4TWNySDRIeXYrOUZURlJtZTA9LS1kNTB6VVdncU5CSE85NS91MEtzMVNBPT0%3D--9a48c9f9b4262a5a21f47dd71ec25d97eb4a9395;
172
+ path=/; HttpOnly
173
+ body:
174
+ encoding: UTF-8
175
+ string: '{"id":4,"state":"new","reference":"222227","public_comments":null,"internal_comments":null,"customer_contact_name":null,"customer_contact_phone":null,"customer_contact_mobile":null,"customer_contact_email":null,"currency_iso_code":"AUD","country_id":14,"drop_off_option_id":null,"drop_off_location_id":null,"post_code":null,"referral_code_id":1,"external_identifier":null,"created_at":"2016-01-01T13:02:12.000+10:30","updated_at":"2016-01-01T13:02:13.000+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":20000,"nett_in_cents":20000,"gross_in_cents":20000,"commission_in_cents":0,"balance_in_cents":20000,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":"SeaLink","deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00.000+10:30"},"balance_due_on":{"_type":"Date","_value":"2016-03-01T00:00:00.000+10:30"},"due":false,"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","unprintable_luggage_tags":false,"discardable_in":60,"inactivatable_in":10,"notices":{},"client":null,"passenger_ids":[],"vehicle_ids":[],"reservation_ids":[6],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[],"vehicles_attributes":[],"reservations_attributes":[{"id":6,"booking_id":4,"description":"A
176
+ basic studio room","comment":null,"active":true,"service_ids":[3,4],"resource_id":6,"quantity":null,"adjustments_attributes":[{"id":7,"gross_in_cents":-20000,"creator":{"id":1,"name":"Administrator
177
+ Administrator","age":null,"first_name":"administrator","last_name":"administrator","title":null,"gender":null,"created_at":null,"updated_at":null,"notes":null,"updator_id":null,"creator_id":null,"active":true,"internal_subdivision":false,"business_number":null,"business_number_type":null,"currency_iso_code":"AUD","access_type":2},"created_at":"2016-01-01T13:02:13.000+10:30","description":"50%
178
+ Off","adjustable_item_type":"Reservation","adjustable_item_id":6,"adjustment_definition_id":1,"adjustment_category_id":1,"automatic":true}],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"bed_configuration":"1
179
+ x Double and 1 x Single","product_type_id":2,"itinerary_footer":false,"fare_basis_set_id":12,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":null,"fare_basis_pointer_id":6,"pick_up_info":null,"drop_off_info":null,"selection_name":"Hilton
180
+ Hotel: Executive Room","product_name_underscore":"accommodation","resource_class_name_underscore":"accommodation","resource_class_name":"Accommodation","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-03-01"},"last_travel_date":{"_type":"Date","_value":"2016-03-02"},"durational":true,"duration":2,"span":2,"checkout_date":{"_type":"Date","_value":"2016-03-03"},"duration_units":"Nights","date_start_label":"In:","date_end_label":"Out:","accommodation_extra_picks":false,"expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
181
+ Priced as: Rack Rate","gross_including_packaged_item_in_cents":20000,"pre_adjusted_gross_including_packaged_item_in_cents":40000,"gross_in_cents":20000,"pre_adjusted_gross_in_cents":40000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":20000,"rules":[{"unique_name":"Test
182
+ Discount Hilton","description":"","display_name":"Test Discount Hilton"}],"package":false,"sub_reservation_depth":0,"extra_pick":null,"child_resource":null,"pending_confirmation":false,"confirmation_request_fields":[],"report_reservation_changes":false,"vendor_pnr":null,"pick_up_information":null,"drop_off_information":null,"vendor_staff":null,"notes_for_vendor":null,"passenger_ids":[],"passenger_splits":[],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{}}],"adjustments_attributes":[],"payments_attributes":[],"payment_types_attributes":[{"id":4,"name":"visa","description":"visa","transaction_fee":"0.0","active":true,"position":3,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":5,"name":"master","description":"master","transaction_fee":"0.0","active":true,"position":4,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":7,"name":"PayPal","description":"Payments
183
+ made via PayPal account","transaction_fee":"0.0","active":true,"position":6,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"paypal","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":10,"name":"Opal
184
+ Pay","description":"Opal Payments","transaction_fee":"0.0","active":true,"position":9,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":null,"payment_method":"opal_pay","gateway":null,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":false,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[]}'
185
+ http_version:
186
+ recorded_at: Wed, 21 Mar 2018 04:40:21 GMT
187
+ - request:
188
+ method: get
189
+ uri: http://test.qt.sealink.com.au:8080/api/resources/6.json
190
+ body:
191
+ encoding: UTF-8
192
+ string: access_key=<QT_KEY>
193
+ headers:
194
+ Content-Length:
195
+ - '0'
196
+ response:
197
+ status:
198
+ code: 200
199
+ message: 'OK '
200
+ headers:
201
+ P3p:
202
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
203
+ Content-Type:
204
+ - application/json; charset=utf-8
205
+ Etag:
206
+ - W/"641461e04c30167b268dd9059d420764"
207
+ Cache-Control:
208
+ - max-age=0, private, must-revalidate
209
+ X-Request-Id:
210
+ - 8b2145a1-6e67-423e-9f40-547544d64ca0
211
+ X-Runtime:
212
+ - '0.188828'
157
213
  Date:
158
- - Fri, 01 Jan 2016 04:38:25 GMT
214
+ - Fri, 01 Jan 2016 02:32:15 GMT
159
215
  X-Rack-Cache:
160
216
  - miss
217
+ Vary:
218
+ - Origin
161
219
  X-Content-Type-Options:
162
220
  - nosniff
163
221
  X-Download-Options:
@@ -171,18 +229,18 @@ http_interactions:
171
229
  Server:
172
230
  - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
173
231
  Content-Length:
174
- - '1444'
232
+ - '1437'
175
233
  Connection:
176
234
  - Keep-Alive
177
235
  Set-Cookie:
178
- - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWJkNmVhMDgwMDNjNzlhZGFkY2Y0YjM3NDEyYjRkMmFjBjsAVEkiCXVzZXIGOwBGaQY%3D--d7a54eab8057174197ebacf5b21a47b876feade9;
236
+ - _session_id=K3YwQzJqQTRUQVg5Z21zQTBtY09CMGxRUU0rRFM5Ukx5dEE5aGhGaGFRSWpOSEhpczRsTyt4dld6SUtKUnNScWs1cm5JRGYyOWZraExiK1FkY3VXZENNQURqK0d0YUs0NTB3SHd3cHFOSVU9LS1UMlF1bXFXSUQxb0lTTUxMdERtWVpnPT0%3D--a8f069368bac2bf3c131daccbe44f8b0776d020e;
179
237
  path=/; HttpOnly
180
238
  body:
181
239
  encoding: UTF-8
182
- string: '{"id":6,"name":"Executive Room","product_type_id":2,"default_capacity":2,"type":"Accommodation","inventory_type":0,"maximum_occupancy":2,"location_id":1,"property_id":1,"fare_basis_pointer_id":6,"disclaimer_id":null,"deposit_rule_id":null,"vendor_id":null,"maximum_weight":null,"days_before_inventory_expires":null,"property_type_id":1,"star_rating":null,"inline_price_in_cents":null,"inline_cost_in_cents":null,"reason_required":false,"resource_category_id":null,"created_at":"2013-03-01T00:08:49+10:30","updated_at":"2013-03-01T00:55:56+10:30","code":"","restrict_to_client_types":false,"minimum_age":null,"guardian_minimum_age":null,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"active":true,"report_changes":false,"inline_pricing":false,"bookable_individually":true,"minimum_passengers":null,"maximum_passengers":null,"required_number_of_vehicles":null,"frequent_traveller_points_multiplier":null,"commissionable":true,"masterpoint_resource_id":null,"print_tickets":false,"individual_tickets":null,"frequent_traveller_redemption_rate":null,"position":null,"ticket_template_id":null,"generate_tickets_by_quantity":true,"to_s":"Hilton
183
- Hotel - Executive Room","client_type_ids":[],"category":null,"location":"Adelaide
184
- CBD","current_description":"\u003Cp\u003EA basic studio room\u003C/p\u003E","graphics":[],"graphic_names":[],"property_name":"Hilton
185
- Hotel","ticket_template":null,"expiry_days":null}'
240
+ string: '[{"id":6,"name":"Executive Room","product_type_id":2,"default_capacity":2,"type":"Accommodation","inventory_type":0,"maximum_occupancy":2,"property_id":1,"fare_basis_pointer_id":6,"disclaimer_id":null,"deposit_rule_id":null,"vendor_id":null,"maximum_weight":null,"days_before_inventory_expires":null,"property_type_id":1,"star_rating":null,"inline_price_in_cents":null,"inline_cost_in_cents":null,"resource_category_id":null,"created_at":"2018-03-21T11:24:01.000+10:30","updated_at":"2018-03-21T11:24:01.000+10:30","code":"","restrict_to_client_types":false,"minimum_age":null,"guardian_minimum_age":null,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"active":true,"report_changes":false,"inline_pricing":false,"bookable_individually":true,"minimum_passengers":null,"maximum_passengers":null,"required_number_of_vehicles":null,"frequent_traveller_points_multiplier":null,"commissionable":true,"masterpoint_resource_id":null,"print_tickets":false,"individual_tickets":null,"frequent_traveller_redemption_rate":null,"position":null,"ticket_template_id":null,"generate_tickets_by_quantity":true,"inventory_release_hour":null,"to_s":"Hilton
241
+ Hotel - Executive Room","client_type_ids":[],"category":null,"location_ids":[5],"current_description":"\u003cp\u003eA
242
+ basic studio room\u003c/p\u003e","graphics":[],"graphic_names":[],"property_name":"Hilton
243
+ Hotel","ticket_template":null,"expiry_days":null}]'
186
244
  http_version:
187
- recorded_at: Wed, 08 Feb 2017 00:35:12 GMT
188
- recorded_with: VCR 3.0.3
245
+ recorded_at: Wed, 21 Mar 2018 04:40:22 GMT
246
+ recorded_with: VCR 4.0.0