quicktravel_client 3.8.1 → 4.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +5 -6
  4. data/CHANGELOG.md +22 -0
  5. data/gemfiles/rails6.gemfile +8 -0
  6. data/lib/quick_travel.rb +2 -0
  7. data/lib/quick_travel/adapter.rb +2 -0
  8. data/lib/quick_travel/booking.rb +6 -1
  9. data/lib/quick_travel/cache.rb +8 -1
  10. data/lib/quick_travel/checkout.rb +3 -2
  11. data/lib/quick_travel/package.rb +13 -0
  12. data/lib/quick_travel/party.rb +1 -1
  13. data/lib/quick_travel/passenger_type.rb +1 -1
  14. data/lib/quick_travel/vehicle_type.rb +1 -1
  15. data/lib/quick_travel/version.rb +1 -1
  16. data/quicktravel_client.gemspec +5 -5
  17. data/spec/booking_spec.rb +10 -0
  18. data/spec/discounts_spec.rb +21 -21
  19. data/spec/package_spec.rb +24 -0
  20. data/spec/spec_helper.rb +5 -0
  21. data/spec/support/cassettes/accommodation_reserve.yml +5 -5
  22. data/spec/support/cassettes/basic_product_scheduled_trips.yml +2 -2
  23. data/spec/support/cassettes/basic_product_scheduled_trips_multi_sector.yml +2 -2
  24. data/spec/support/cassettes/basic_product_scheduled_trips_unbookable.yml +2 -2
  25. data/spec/support/cassettes/booking_update.yml +3 -3
  26. data/spec/support/cassettes/booking_with_comments.yml +119 -0
  27. data/spec/support/cassettes/booking_with_nested_attributes.yml +4 -4
  28. data/spec/support/cassettes/create_reservation_with_booking.yml +2 -2
  29. data/spec/support/cassettes/package_show.yml +83 -0
  30. data/spec/support/cassettes/package_show_product_type.yml +80 -0
  31. data/spec/support/cassettes/price_quote.yml +4 -4
  32. data/spec/support/coverage_loader.rb +1 -1
  33. metadata +31 -29
  34. data/gemfiles/rails4.gemfile +0 -9
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b571276490332c20a8f3590a5fd8db3b1829c4ee997abd52637f16fd60faf08f
4
- data.tar.gz: a113d127a0b9e43284651a6c655d09f6580be932dc95f155abddaaf589a609e6
3
+ metadata.gz: 4da663e0f71fad43fdba390dd3734954530fde1b53013e59a8a4053db8b8b016
4
+ data.tar.gz: 98ade4d08e4d1a5d8dc8177b262f329d29fbbb58662580bded964d107ba61bfd
5
5
  SHA512:
6
- metadata.gz: 56e1275a4222457a5de43a9894680c5c9e949cb83fd9b160c4c4db3f5d40c008741dc6ed5ee75f4a613cbea5dd03dc169c83bf69e272cd9162c9cf62f32fbd72
7
- data.tar.gz: 2889b499da18348ca09d8474434cefbb8d4cfd3ad5f1ae110aa1417bd1dc9b7c929564545b18f6fdbac14dd48c19ff990d19c18188edb3289b0d51626352b0a4
6
+ metadata.gz: 2ff942594f0e30d42f9d4d1f03687ab185fc0085a8fcbc2f7919b778498c87667fc929f802df95150f44468b9aaaa79f3d7de6297fb3cf464fe58bfc1fa381ac
7
+ data.tar.gz: bad7b656128eeff52372b7b0e420a84c6d18d0b892afd39e112d9a1e3949242f173213e942ba527fcdbec2c0374e5c6d70eaa67c562f098625991fa04934a24e
@@ -1 +1 @@
1
- 2.5.0
1
+ 2.7.1
@@ -1,15 +1,14 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.2
4
- - 2.3
5
- - 2.4
6
3
  - 2.5
4
+ - 2.6
5
+ - 2.7
7
6
  before_install:
8
- - gem install bundler --version "1.17.3"
9
- script: bundle && bundle exec rake spec
7
+ - gem install bundler
8
+ script: bundle && bundle exec rspec spec
10
9
  gemfile:
11
- - gemfiles/rails4.gemfile
12
10
  - gemfiles/rails5.gemfile
11
+ - gemfiles/rails6.gemfile
13
12
  notifications:
14
13
  email:
15
14
  - support@travellink.com.au
@@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file.
3
3
  This project adheres to [Semantic Versioning](http://semver.org/).
4
4
  This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/).
5
5
 
6
+ ## [4.3.0]
7
+ ### Changed
8
+ - [TT-8142] Add suitable user-agent header
9
+ - [TT-8379] Switch to using api/parties endpoint
10
+
11
+ ## [4.2.0]
12
+ ### Changed
13
+ - [TT-7969] Update cassettes to work with HttpParty >= 0.18.1
14
+ - [TT-7912] Update api status endpoint to the new response format
15
+
16
+ ## [4.1.0]
17
+ ### Added
18
+ - [TT-7788] Add API namespace to vehicle_types endpoint
19
+
20
+ ## [4.0.0]
21
+ - [TT-7385] Update Money dependency, test against Ruby 2.7 / Rails 6
22
+
23
+ ## [3.9.0]
24
+ ### Added
25
+ - [DC-3115] Add customer comments method in booking
26
+ - [DC-2942] Add package class to support quantity based package
27
+
6
28
  ## [3.8.1]
7
29
  ### Changed
8
30
  - [DC-3033] Reverse changes in checkout class to fix polipay redirection in EcomEngine
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+ gemspec :path => '../'
3
+
4
+ group :development, :test do
5
+ gem 'activesupport', '~> 6.0'
6
+ gem 'activerecord', '~> 6.0'
7
+ gem 'actionpack', '~> 6.0'
8
+ end
@@ -2,6 +2,7 @@
2
2
  #
3
3
  module QuickTravel
4
4
  require 'active_support' # for .try, etc.
5
+ require 'money_extensions'
5
6
 
6
7
  require 'quick_travel/cache'
7
8
  require 'quick_travel/config'
@@ -33,6 +34,7 @@ module QuickTravel
33
34
  require 'quick_travel/drop_off_location'
34
35
  require 'quick_travel/drop_off_option'
35
36
  require 'quick_travel/location'
37
+ require 'quick_travel/package'
36
38
  require 'quick_travel/party'
37
39
  require 'quick_travel/passenger'
38
40
  require 'quick_travel/passenger_type'
@@ -214,6 +214,8 @@ module QuickTravel
214
214
  http_params[:headers] ||= {}
215
215
  http_params[:headers]['Content-length'] = '0' if http_params[:body].blank?
216
216
  http_params[:headers]['x-api-key'] = QuickTravel.config.access_key
217
+ http_params[:headers]['user-agent'] = 'quicktravel_client/' + QuickTravel::VERSION;
218
+
217
219
  expect = http_params.delete(:expect)
218
220
 
219
221
  # Use :body instead of :query for put/post.
@@ -13,7 +13,7 @@ module QuickTravel
13
13
  end
14
14
 
15
15
  def self.find_by_reference(reference)
16
- find_all!("#{api_base}/reference/#{URI.escape(reference)}.json").first
16
+ find_all!("#{api_base}/reference/#{URI.encode_www_form_component(reference)}.json").first
17
17
  end
18
18
 
19
19
  def documents(regenerate = false)
@@ -296,6 +296,11 @@ module QuickTravel
296
296
  Encrypt.access_key(@id.to_s)
297
297
  end
298
298
 
299
+ def customer_comments
300
+ comment = comments.detect{ |comment| comment['comment_type'] == 'customer' }
301
+ comment.presence.try(:[], 'text') || ''
302
+ end
303
+
299
304
  protected
300
305
 
301
306
  def reserve(url, options)
@@ -11,13 +11,20 @@ module QuickTravel
11
11
  cache_options ||= {}
12
12
  key = "#{@@namespace}_#{key}" unless cache_options[:disable_namespacing]
13
13
  cached_value = cache_store.read(key)
14
- return cached_value unless cached_value.nil?
14
+ return cached_value unless cache_empty?(cached_value)
15
15
  return nil unless block_given?
16
16
  cache_options ||= {}
17
17
  cache_options[:expires_in] = 1.day unless cache_options.key?(:expires_in)
18
18
  yield.tap { |value| cache_store.write(key, value, cache_options) }
19
19
  end
20
20
 
21
+ def self.cache_empty?(cached_value)
22
+ if cached_value.respond_to?(:body)
23
+ return cached_value.body.nil? || cached_value.body.empty?
24
+ end
25
+ cached_value.nil?
26
+ end
27
+
21
28
  def self.delete(key, namespace = true)
22
29
  key = "#{@@namespace}_#{key}" if namespace
23
30
  cache_store.delete(key)
@@ -29,10 +29,11 @@ module QuickTravel
29
29
  # When complete:
30
30
  # progress: 'completed'
31
31
  #
32
- # When failed, status :unprocessable_entity
32
+ # When failed, status :ok
33
+ # successful: false
33
34
  # error: 'Reason for failure'
34
35
  def self.status(id)
35
- build_checkout_for { get_and_validate("/api/checkouts/#{id}.json") }
36
+ build_checkout_for { get_and_validate("/api/checkouts/#{id}.json?v=1") }
36
37
  end
37
38
 
38
39
  def self.update(id, data)
@@ -0,0 +1,13 @@
1
+ require 'quick_travel/adapter'
2
+
3
+ module QuickTravel
4
+ class Package < Adapter
5
+ attr_reader :error_message
6
+
7
+ self.api_base = '/api/packages'
8
+
9
+ def product_type
10
+ QuickTravel::ProductType.find(product_type_id)
11
+ end
12
+ end
13
+ end
@@ -12,7 +12,7 @@ module QuickTravel
12
12
  end
13
13
  end
14
14
 
15
- self.api_base = '/parties'
15
+ self.api_base = '/api/parties'
16
16
 
17
17
  def self.find_by_login(options)
18
18
  get_and_validate('/parties/find_by_login.json', options)
@@ -13,7 +13,7 @@ module QuickTravel
13
13
  end
14
14
 
15
15
  def self.pluralize(count, singular, plural = nil)
16
- "#{count || 0} " + ((count == 1 || count =~ /^1(\.0+)?$/) ? singular : (plural || singular.pluralize))
16
+ "#{count || 0} " + ((count == 1) ? singular : (plural || singular.pluralize))
17
17
  end
18
18
  end
19
19
  end
@@ -2,7 +2,7 @@ require 'quick_travel/adapter'
2
2
 
3
3
  module QuickTravel
4
4
  class VehicleType < Adapter
5
- self.api_base = '/vehicle_types'
5
+ self.api_base = '/api/vehicle_types'
6
6
  self.lookup = true
7
7
  end
8
8
  end
@@ -1,3 +1,3 @@
1
1
  module QuickTravel
2
- VERSION = '3.8.1'
2
+ VERSION = '4.3.0'
3
3
  end
@@ -16,14 +16,14 @@ 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.17'
20
- spec.add_dependency 'json'
21
- spec.add_dependency 'activesupport', '>= 2.0.0'
19
+ spec.add_dependency 'httparty', '>= 0.18.1'
20
+ spec.add_dependency 'activesupport', '>= 5.0.0'
22
21
  spec.add_dependency 'facets'
23
- spec.add_dependency 'money', '>= 3.0', '< 6.0' # 6.0 starts to deprecate/split
22
+ spec.add_dependency 'money', '>= 6.0'
23
+ spec.add_dependency 'money_extensions', '>= 1.0'
24
24
  spec.add_dependency 'will_paginate'
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.7'
26
+ spec.add_development_dependency 'bundler', '~> 2'
27
27
  spec.add_development_dependency 'rake'
28
28
  spec.add_development_dependency 'rspec'
29
29
  spec.add_development_dependency 'rspec-its'
@@ -207,3 +207,13 @@ describe QuickTravel::Booking, "when booking doesn't exist" do
207
207
  end
208
208
  end
209
209
  end
210
+
211
+ describe QuickTravel::Booking, "#customer_comments" do
212
+ let(:booking) { QuickTravel::Booking.find(333536) }
213
+
214
+ it 'should return customer comments' do
215
+ VCR.use_cassette('booking_with_comments') do
216
+ expect(booking.customer_comments).to eq 'I hate this'
217
+ end
218
+ end
219
+ end
@@ -26,9 +26,9 @@ describe 'Booking price_changes' do
26
26
 
27
27
  specify { expect(price_change.target.type).to eq 'Booking' }
28
28
  specify { expect(price_change.target.id).to eq booking.id }
29
- specify { expect(price_change.original_price).to eq 640.00 }
30
- specify { expect(price_change.changed_price).to eq 380.00 }
31
- specify { expect(price_change.price_change).to eq(-260.00) }
29
+ specify { expect(price_change.original_price).to eq 640.00.to_money }
30
+ specify { expect(price_change.changed_price).to eq 380.00.to_money }
31
+ specify { expect(price_change.price_change).to eq(-260.00.to_money) }
32
32
  specify do
33
33
  expect(price_change.reservation_price_changes.count).to(
34
34
  eq booking.reservations.count)
@@ -43,9 +43,9 @@ describe 'Booking price_changes' do
43
43
 
44
44
  specify { expect(price_change.target.type).to eq 'Reservation' }
45
45
  specify { expect(price_change.target.id).to eq reservation.id }
46
- specify { expect(price_change.original_price).to eq 400.00 }
47
- specify { expect(price_change.changed_price).to eq 200.00 }
48
- specify { expect(price_change.price_change).to eq(-200) }
46
+ specify { expect(price_change.original_price).to eq 400.00.to_money }
47
+ specify { expect(price_change.changed_price).to eq 200.00.to_money }
48
+ specify { expect(price_change.price_change).to eq(-200.to_money) }
49
49
  end
50
50
 
51
51
  context 'the total price_change applied on the top level reservation' do
@@ -57,9 +57,9 @@ describe 'Booking price_changes' do
57
57
 
58
58
  specify { expect(price_change.target.type).to eq 'Reservation' }
59
59
  specify { expect(price_change.target.id).to eq reservation.id }
60
- specify { expect(price_change.original_price).to eq 640.00 }
61
- specify { expect(price_change.changed_price).to eq 380.00 }
62
- specify { expect(price_change.price_change).to eq(-260.00) }
60
+ specify { expect(price_change.original_price).to eq 640.00.to_money }
61
+ specify { expect(price_change.changed_price).to eq 380.00.to_money }
62
+ specify { expect(price_change.price_change).to eq(-260.00.to_money) }
63
63
  end
64
64
 
65
65
  context 'the price_change applied on the first extra pick' do
@@ -71,9 +71,9 @@ describe 'Booking price_changes' do
71
71
 
72
72
  specify { expect(price_change.target.type).to eq 'Reservation' }
73
73
  specify { expect(price_change.target.id).to eq extra_pick_without_price_change.id }
74
- specify { expect(price_change.original_price).to eq 120 }
75
- specify { expect(price_change.changed_price).to eq 120 }
76
- specify { expect(price_change.price_change).to eq 0 }
74
+ specify { expect(price_change.original_price).to eq 120.to_money }
75
+ specify { expect(price_change.changed_price).to eq 120.to_money }
76
+ specify { expect(price_change.price_change).to eq 0.to_money }
77
77
  end
78
78
 
79
79
  context 'the total price_change applied on the first extra pick' do
@@ -85,9 +85,9 @@ describe 'Booking price_changes' do
85
85
 
86
86
  specify { expect(price_change.target.type).to eq 'Reservation' }
87
87
  specify { expect(price_change.target.id).to eq extra_pick_without_price_change.id }
88
- specify { expect(price_change.original_price).to eq 120 }
89
- specify { expect(price_change.changed_price).to eq 120 }
90
- specify { expect(price_change.price_change).to eq 0 }
88
+ specify { expect(price_change.original_price).to eq 120.to_money }
89
+ specify { expect(price_change.changed_price).to eq 120.to_money }
90
+ specify { expect(price_change.price_change).to eq 0.to_money }
91
91
  end
92
92
 
93
93
  context 'the price_change applied on second extra pick' do
@@ -99,9 +99,9 @@ describe 'Booking price_changes' do
99
99
 
100
100
  specify { expect(price_change.target.type).to eq 'Reservation' }
101
101
  specify { expect(price_change.target.id).to eq extra_pick_with_price_change.id }
102
- specify { expect(price_change.original_price).to eq 120.00 }
103
- specify { expect(price_change.changed_price).to eq 60.00 }
104
- specify { expect(price_change.price_change).to eq(-60.00) }
102
+ specify { expect(price_change.original_price).to eq 120.00.to_money }
103
+ specify { expect(price_change.changed_price).to eq 60.00.to_money }
104
+ specify { expect(price_change.price_change).to eq(-60.00.to_money) }
105
105
  end
106
106
 
107
107
  context 'the total price_change applied on second extra pick' do
@@ -113,9 +113,9 @@ describe 'Booking price_changes' do
113
113
 
114
114
  specify { expect(price_change.target.type).to eq 'Reservation' }
115
115
  specify { expect(price_change.target.id).to eq extra_pick_with_price_change.id }
116
- specify { expect(price_change.original_price).to eq 120.00 }
117
- specify { expect(price_change.changed_price).to eq 60.00 }
118
- specify { expect(price_change.price_change).to eq(-60.00) }
116
+ specify { expect(price_change.original_price).to eq 120.00.to_money }
117
+ specify { expect(price_change.changed_price).to eq 60.00.to_money }
118
+ specify { expect(price_change.price_change).to eq(-60.00.to_money) }
119
119
  end
120
120
  end
121
121
  end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+ require 'quick_travel/package'
3
+
4
+ describe QuickTravel::Package do
5
+ subject(:package) {
6
+ VCR.use_cassette('package_show') do
7
+ QuickTravel::Package.find(464)
8
+ end
9
+ }
10
+
11
+ its(:name) { should eq 'Swan Valley Gourmet Wine Cruise (SVGWC-0945)' }
12
+ its(:type) { should eq 'Package' }
13
+
14
+
15
+ context '#product_type' do
16
+ subject(:property_type) {
17
+ VCR.use_cassette 'package_show_product_type' do
18
+ package.product_type
19
+ end
20
+ }
21
+
22
+ its(:name) { should eq 'Rottnest Packages' }
23
+ end
24
+ end
@@ -27,6 +27,11 @@ end
27
27
  require 'quick_travel/connection_error'
28
28
  require 'quick_travel/cache'
29
29
 
30
+ Money.default_currency = Money::Currency.new("AUD")
31
+ Money.locale_backend = nil
32
+ Money.default_formatting_rules = { thousands_separator: "," }
33
+ Money.rounding_mode = BigDecimal::ROUND_HALF_UP
34
+
30
35
  class HashCache
31
36
  def initialize
32
37
  @cache = {}
@@ -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[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
8
+ string: reservations%5Bresource_id%5D=6&reservations%5Bbed_configuration_id%5D=1&reservations%5Bfirst_travel_date%5D=01%2F03%2F2016&reservations%5Blast_travel_date%5D=02%2F03%2F2016&booking_id=4
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -54,7 +54,7 @@ http_interactions:
54
54
  body:
55
55
  encoding: UTF-8
56
56
  string: ''
57
- http_version:
57
+ http_version:
58
58
  recorded_at: Wed, 21 Mar 2018 04:40:20 GMT
59
59
  - request:
60
60
  method: get
@@ -121,7 +121,7 @@ http_interactions:
121
121
  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
122
122
  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
123
123
  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":[]}'
124
- http_version:
124
+ http_version:
125
125
  recorded_at: Wed, 21 Mar 2018 04:40:21 GMT
126
126
  - request:
127
127
  method: get
@@ -188,7 +188,7 @@ http_interactions:
188
188
  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
189
189
  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
190
190
  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":[]}'
191
- http_version:
191
+ http_version:
192
192
  recorded_at: Wed, 21 Mar 2018 04:40:21 GMT
193
193
  - request:
194
194
  method: get
@@ -249,6 +249,6 @@ http_interactions:
249
249
  Hotel - Executive Room","client_type_ids":[],"category":null,"location_ids":[5],"current_description":"\u003cp\u003eA
250
250
  basic studio room\u003c/p\u003e","graphics":[],"graphic_names":[],"property_name":"Hilton
251
251
  Hotel","ticket_template":null,"expiry_days":null}]'
252
- http_version:
252
+ http_version:
253
253
  recorded_at: Wed, 21 Mar 2018 04:40:22 GMT
254
254
  recorded_with: VCR 4.0.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/reservation_for/scheduled_trips/find_services_for.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: product_type_id=1&route_id=1&forward[first_travel_date]=2016-03-01&forward[passenger_types][1]=2
8
+ string: product_type_id=1&route_id=1&forward%5Bfirst_travel_date%5D=2016-03-01&forward%5Bpassenger_types%5D%5B1%5D=2
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -64,6 +64,6 @@ http_interactions:
64
64
  class=\"money positive\"\u003e$40.00\u003c/span\u003e\u0026nbsp;\u003c/span\u003e","price_breakdown_passengers_in_cents":4000,"price_breakdown_vehicles_in_cents":0,"trip_id":5,"stop_departure_time":"2000-01-01T18:00:00.000Z","stop_arrival_time":"2000-01-01T18:45:00.000Z","from_route_stop_attributes":null,"to_route_stop_attributes":null,"departure_time":"2000-01-01T18:00:00.000Z","arrival_time":"2000-01-01T18:45:00.000Z"},{"product_id":"6","product_id_field":"trip_id","resource_id":1,"resource_class_name_underscore":"ship","product_name_underscore":"ferry","tariff_level_id":1,"service_ids":[14],"first_travel_date":"01-03-2016","last_travel_date":"01-03-2016","time_class":"","exception_type":null,"bookable":true,"reason_unbookable":null,"service_notes":null,"booking_notes":null,"inventory_type_code":"A","price_in_cents":4000,"pre_adjusted_price_in_cents":4000,"total_price_adjustment_in_cents":0,"adjustments":[],"selection_name":"09:00pm
65
65
  - KI Ferry","price_breakdown":"\u003cspan\u003e\u003cstrong\u003ePassengers:\u003c/strong\u003e\u0026nbsp;\u003cspan
66
66
  class=\"money positive\"\u003e$40.00\u003c/span\u003e\u0026nbsp;\u003c/span\u003e","price_breakdown_passengers_in_cents":4000,"price_breakdown_vehicles_in_cents":0,"trip_id":6,"stop_departure_time":"2000-01-01T21:00:00.000Z","stop_arrival_time":"2000-01-01T21:45:00.000Z","from_route_stop_attributes":null,"to_route_stop_attributes":null,"departure_time":"2000-01-01T21:00:00.000Z","arrival_time":"2000-01-01T21:45:00.000Z"}]'
67
- http_version:
67
+ http_version:
68
68
  recorded_at: Wed, 21 Mar 2018 04:40:37 GMT
69
69
  recorded_with: VCR 4.0.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/reservation_for/scheduled_trips/find_services_for.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: product_type_id=6&route_id=3&forward[first_travel_date]=2016-03-01&forward[from_route_stop_id]=5&forward[to_route_stop_id]=14&forward[passenger_types][1]=2
8
+ string: product_type_id=6&route_id=3&forward%5Bfirst_travel_date%5D=2016-03-01&forward%5Bfrom_route_stop_id%5D=5&forward%5Bto_route_stop_id%5D=14&forward%5Bpassenger_types%5D%5B1%5D=2
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -64,6 +64,6 @@ http_interactions:
64
64
  class=\"money positive\"\u003e$30.00\u003c/span\u003e\u0026nbsp;\u003c/span\u003e","price_breakdown_passengers_in_cents":3000,"price_breakdown_vehicles_in_cents":0,"trip_id":13,"stop_departure_time":"2000-01-01T15:45:00.000Z","stop_arrival_time":"2000-01-01T17:30:00.000Z","from_route_stop_attributes":{"id":5,"inventory_controlled":true,"route_id":3,"position":1,"created_at":null,"updated_at":null,"stop_id":3,"name":"Adelaide
65
65
  Central Bus Station","code":"ACBS"},"to_route_stop_attributes":{"id":14,"inventory_controlled":true,"route_id":3,"position":10,"created_at":null,"updated_at":null,"stop_id":12,"name":"Cape
66
66
  Jervis Ferry Terminal","code":null},"departure_time":"2000-01-01T15:00:00.000Z","arrival_time":"2000-01-01T17:30:00.000Z"}]'
67
- http_version:
67
+ http_version:
68
68
  recorded_at: Wed, 21 Mar 2018 04:40:38 GMT
69
69
  recorded_with: VCR 4.0.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/reservation_for/scheduled_trips/find_services_for.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: product_type_id=1&route_id=1&forward[first_travel_date]=2016-03-03&forward[passenger_types][1]=2
8
+ string: product_type_id=1&route_id=1&forward%5Bfirst_travel_date%5D=2016-03-03&forward%5Bpassenger_types%5D%5B1%5D=2
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -56,6 +56,6 @@ http_interactions:
56
56
  body:
57
57
  encoding: UTF-8
58
58
  string: "[]"
59
- http_version:
59
+ http_version:
60
60
  recorded_at: Wed, 21 Mar 2018 04:40:37 GMT
61
61
  recorded_with: VCR 4.0.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/bookings/3.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: booking[customer_contact_name]=John
8
+ string: booking%5Bcustomer_contact_name%5D=John
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -58,7 +58,7 @@ http_interactions:
58
58
  string: '{"id":3,"state":"new","reference":"222226","public_comments":null,"internal_comments":null,"customer_contact_name":"John","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:06.000+10:30","updated_at":"2016-01-01T13:02:06.000+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":0,"nett_in_cents":0,"gross_in_cents":0,"commission_in_cents":0,"balance_in_cents":0,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":"SeaLink","deposit_relevant":false,"deposit_due_on":null,"balance_due_on":null,"due":true,"first_travel_date":{"_type":"Date","_value":"2016-01-01"},"last_travel_date":null,"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":[],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[],"vehicles_attributes":[],"reservations_attributes":[],"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
59
59
  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
60
60
  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":[]}'
61
- http_version:
61
+ http_version:
62
62
  recorded_at: Wed, 21 Mar 2018 04:40:13 GMT
63
63
  - request:
64
64
  method: get
@@ -118,6 +118,6 @@ http_interactions:
118
118
  string: '{"id":3,"state":"new","reference":"222226","public_comments":null,"internal_comments":null,"customer_contact_name":"John","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:06.000+10:30","updated_at":"2016-01-01T13:02:06.000+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":0,"nett_in_cents":0,"gross_in_cents":0,"commission_in_cents":0,"balance_in_cents":0,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":"SeaLink","deposit_relevant":false,"deposit_due_on":null,"balance_due_on":null,"due":true,"first_travel_date":{"_type":"Date","_value":"2016-01-01"},"last_travel_date":null,"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":[],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[],"vehicles_attributes":[],"reservations_attributes":[],"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
119
119
  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
120
120
  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":[]}'
121
- http_version:
121
+ http_version:
122
122
  recorded_at: Wed, 21 Mar 2018 04:40:14 GMT
123
123
  recorded_with: VCR 4.0.0
@@ -0,0 +1,119 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://test.qt.sealink.com.au:8080/api/bookings/333536.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Length:
11
+ - '0'
12
+ X-Api-Key:
13
+ - <QT_KEY>
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Thu, 20 Feb 2020 04:49:21 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d479fa6197c2ba76728106cae869037381582174160; expires=Sat, 21-Mar-20
29
+ 04:49:20 GMT; path=/; domain=.quicktravel.com.au; HttpOnly; SameSite=Lax
30
+ - _session_id=nDi7wN9vz%2BWnYivttZncWLTlh0sID39ME4%2BzY1x85FwnrsEma2kQLQy56t8wG4Trg%2B%2B6pOaO5RsFQ%2FxoU3Q7K46VhP%2BMMADI5HK9csHIagOb5bHEjQM%3D--9uFF2MnY7YnenN12--OcTj7hAxSUXCSEo7gFV7qw%3D%3D;
31
+ path=/; HttpOnly
32
+ Cache-Control:
33
+ - max-age=0, private, must-revalidate
34
+ Etag:
35
+ - W/"ec8f8b692ff0cdd0ad92d33a51c41088"
36
+ P3p:
37
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
38
+ Strict-Transport-Security:
39
+ - max-age=631138519
40
+ Vary:
41
+ - Origin
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Download-Options:
45
+ - noopen
46
+ X-Frame-Options:
47
+ - sameorigin
48
+ X-Rack-Cache:
49
+ - miss
50
+ X-Request-Id:
51
+ - 8a7660a8-8ca5-4b29-bf42-ffc70b2ab78b
52
+ X-Runtime:
53
+ - '0.974720'
54
+ X-Xss-Protection:
55
+ - 1; mode=block
56
+ Cf-Cache-Status:
57
+ - DYNAMIC
58
+ Expect-Ct:
59
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
60
+ Server:
61
+ - cloudflare
62
+ Cf-Ray:
63
+ - 567dda783ac2f2ed-ADL
64
+ body:
65
+ encoding: UTF-8
66
+ string: '{"id":333536,"state":"active","reference":"23263F","public_comments":null,"internal_comments":null,"comments":[{"id":12,"booking_id":333536,"comment_type":"customer","text":"I
67
+ hate this","sentiment":"neutral","language_code":"en","translated_text":null}],"customer_contact_name":"John
68
+ Smith","customer_contact_phone":"1234","customer_contact_mobile":null,"customer_contact_email":"john.smith@test.com","currency_iso_code":"AUD","country_id":14,"drop_off_option_id":null,"drop_off_location_id":null,"post_code":"5000","referral_code_id":31,"external_identifier":null,"created_at":"2020-02-20T12:11:12.000+08:00","updated_at":"2020-02-20T12:29:45.000+08:00","promo_code":null,"promo_code_id":null,"insurance_offered":true,"total_adjustments_in_cents":136,"pre_adjusted_gross_in_cents":10900,"nett_in_cents":11036,"gross_in_cents":11036,"commission_in_cents":0,"balance_in_cents":0,"paid_in_cents":11036,"surcharge_in_cents":136,"deposit_in_cents":11036,"web_site":{"id":2,"name":"SeaLink
69
+ Rottnest","created_at":"2017-08-08T09:32:56.000+08:00","updated_at":"2017-08-08T09:32:56.000+08:00","access_key":"46eff490c163bad418569bf990214f798df8533fea29f0efb75ff0da10865109","manager_id":4,"letterhead_id":1},"web_site_name":"SeaLink
70
+ Rottnest","deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2020-02-20T12:11:12.000+08:00"},"balance_due_on":{"_type":"Date","_value":"2020-02-20T12:11:12.000+08:00"},"due":true,"first_travel_date":{"_type":"Date","_value":"2020-02-21"},"last_travel_date":{"_type":"Date","_value":"2020-02-21"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","unprintable_luggage_tags":false,"ttlseconds":null,"expires_from":"2020-02-20T12:39:21.289+08:00","discardable_in":-600,"inactivatable_in":-600,"notices":{},"client":null,"passenger_ids":[1101379],"vehicle_ids":[],"reservation_ids":[898357,898358],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[{"id":1101379,"title":"Mr","first_name":"John","last_name":"Smith","passenger_type_id":1,"age":null,"gender":"Male","position":1,"driver_uid":null,"booking_id":333536}],"vehicles_attributes":[],"reservations_attributes":[{"id":898357,"booking_id":333536,"description":"The
71
+ ''Quokka 1'', is a 400 passenger Enviro-Cat vessel that runs less fuel per
72
+ passenger than a small four cylinder car","comment":null,"active":true,"service_ids":[106911],"resource_id":2,"quantity":null,"adjustments_attributes":[{"id":3062684,"gross_in_cents":1900,"creator":{"id":4,"name":"Web
73
+ Site Manager","age":null,"first_name":"Web Site","last_name":"Manager","title":"Mr","created_at":"2017-05-01T13:27:47.000+08:00","updated_at":"2017-10-04T09:23:21.000+08:00","notes":"","updator_id":18,"creator_id":null,"active":true,"internal_subdivision":false,"business_number":null,"business_number_type":null,"access_type":2,"gender_id":"Male","auth_id":null,"birthdate":null},"created_at":"2020-02-20T12:11:49.000+08:00","description":"Rottnest
74
+ Island Admission Fee - Adult - One Way / Return on Same Day 2019/20","adjustable_item_type":"Reservation","adjustable_item_id":898357,"adjustment_definition_id":468,"adjustment_category_id":3,"automatic":true}],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"start_time":"2000-01-01T08:30:00.000Z","end_time":"2000-01-01T10:00:00.000Z","route":"Perth
75
+ and Fremantle to Rottnest Island","route_path":"Perth to Rottnest Island","route_id":8,"trip_id":97,"inverse_reservation_id":898358,"from_route_stop_attributes":{"id":73,"inventory_controlled":true,"route_id":8,"position":1,"created_at":"2019-10-14T08:43:51.000+08:00","updated_at":"2019-10-14T08:43:51.000+08:00","stop_id":3,"name":"Perth","code":"PERTH","address":"Pier
76
+ 3, Barrack Street Jetty, Perth, WA 6000"},"to_route_stop_attributes":{"id":75,"inventory_controlled":true,"route_id":8,"position":3,"created_at":"2019-10-14T08:43:51.000+08:00","updated_at":"2019-10-14T08:43:51.000+08:00","stop_id":2,"name":"Rottnest
77
+ Island","code":"ROTTO","address":"Main Jetty, Thomson Bay, Rottnest Island,
78
+ WA 6161"},"product_type_id":6,"itinerary_footer":false,"fare_basis_set_id":266,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_vendor":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":80,"pick_up_info":"0830:
79
+ Perth (Pier 3, Barrack Street Jetty, Perth, WA 6000)","drop_off_info":"1000:
80
+ Rottnest Island (Main Jetty, Thomson Bay, Rottnest Island, WA 6161)","selection_name":"0830
81
+ - Quokka 2 - From Perth","product_name_underscore":"ferry","resource_class_name_underscore":"ship","resource_class_name":"Ship","has_ticket_template":false,"resource_ignore_last_travel_date_offset":false,"first_travel_date":{"_type":"Date","_value":"2020-02-21"},"last_travel_date":{"_type":"Date","_value":"2020-02-21"},"durational":false,"duration":1,"span":1,"duration_units":"Days","date_start_label":"Start
82
+ Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
83
+ Priced as: Rottnest Island - from 5 September 2019 - Same Day \u0026 Different
84
+ Day Return","gross_including_packaged_item_in_cents":6400,"pre_adjusted_gross_including_packaged_item_in_cents":4500,"gross_in_cents":6400,"pre_adjusted_gross_in_cents":4500,"pre_adjusted_commission_in_cents":0,"cost_in_cents":0,"sub_items_gross_in_cents":0,"rules":[{"unique_name":"Rottnest
85
+ Island Admission Fee - Same Day Return from 1 July 2019 (Not commissionable)","description":"Rottnest
86
+ Island Admission Fee (only charged when arriving on Rottnest Island, not when
87
+ departing)","display_name":"Rottnest Island Admission Fee - Same Day Return
88
+ from 1 July 2019 (Not commissionable)"},{"unique_name":"Rottnest Island Ferry
89
+ - Same Day Return - travel from 5/9/19","description":"Rottnest Island Ferry
90
+ - Same Day Return - travel from 5/9/19","display_name":"Rottnest Island Ferry
91
+ - Same Day Return - travel from 5/9/19"}],"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":[1101379],"passenger_splits":[{"id":7646275,"consumer_id":1101379,"consumer_splittable_id":898357,"gross_in_cents":4500,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":"2020-02-20T12:11:14.000+08:00","updated_at":"2020-02-20T12:11:15.000+08:00","commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1101379":6400}},{"id":898358,"booking_id":333536,"description":"The
92
+ ''Quokka 1'', is a 400 passenger Enviro-Cat vessel that runs less fuel per
93
+ passenger than a small four cylinder car","comment":null,"active":true,"service_ids":[106912],"resource_id":2,"quantity":null,"adjustments_attributes":[],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"start_time":"2000-01-01T16:15:00.000Z","end_time":"2000-01-01T17:45:00.000Z","route":"Rottnest
94
+ Island to Fremantle and Perth","route_path":"Rottnest Island to Perth","route_id":9,"trip_id":98,"inverse_reservation_id":898357,"from_route_stop_attributes":{"id":76,"inventory_controlled":true,"route_id":9,"position":1,"created_at":"2019-10-14T08:44:31.000+08:00","updated_at":"2019-10-14T08:44:31.000+08:00","stop_id":2,"name":"Rottnest
95
+ Island","code":"ROTTO","address":"Main Jetty, Thomson Bay, Rottnest Island,
96
+ WA 6161"},"to_route_stop_attributes":{"id":78,"inventory_controlled":true,"route_id":9,"position":3,"created_at":"2019-10-14T08:44:31.000+08:00","updated_at":"2019-10-14T08:44:31.000+08:00","stop_id":3,"name":"Perth","code":"PERTH","address":"Pier
97
+ 3, Barrack Street Jetty, Perth, WA 6000"},"product_type_id":6,"itinerary_footer":false,"fare_basis_set_id":257,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_vendor":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":81,"pick_up_info":"1615:
98
+ Rottnest Island (Main Jetty, Thomson Bay, Rottnest Island, WA 6161)","drop_off_info":"1745:
99
+ Perth (Pier 3, Barrack Street Jetty, Perth, WA 6000)","selection_name":"1615
100
+ - Quokka 2 - To Perth","product_name_underscore":"ferry","resource_class_name_underscore":"ship","resource_class_name":"Ship","has_ticket_template":false,"resource_ignore_last_travel_date_offset":false,"first_travel_date":{"_type":"Date","_value":"2020-02-21"},"last_travel_date":{"_type":"Date","_value":"2020-02-21"},"durational":false,"duration":1,"span":1,"duration_units":"Days","date_start_label":"Start
101
+ Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
102
+ Priced as: Rottnest Island - from 5 September 2019 - Same Day \u0026 Different
103
+ Day Return","gross_including_packaged_item_in_cents":4500,"pre_adjusted_gross_including_packaged_item_in_cents":4500,"gross_in_cents":4500,"pre_adjusted_gross_in_cents":4500,"pre_adjusted_commission_in_cents":0,"cost_in_cents":0,"sub_items_gross_in_cents":0,"rules":[{"unique_name":"Rottnest
104
+ Island Ferry - Same Day Return - travel from 5/9/19","description":"Rottnest
105
+ Island Ferry - Same Day Return - travel from 5/9/19","display_name":"Rottnest
106
+ Island Ferry - Same Day Return - travel from 5/9/19"}],"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":[1101379],"passenger_splits":[{"id":7646276,"consumer_id":1101379,"consumer_splittable_id":898358,"gross_in_cents":4500,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":"2020-02-20T12:11:14.000+08:00","updated_at":"2020-02-20T12:11:15.000+08:00","commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1101379":4500}}],"adjustments_attributes":[],"payments_attributes":[{"id":155921,"booking_id":333536,"amount_in_cents":11036,"client_id":null,"creator_id":4,"created_at":"2020-02-20T12:29:42.000+08:00","updated_at":"2020-02-20T12:29:44.000+08:00","till_id":3,"comment":"","payment_type_id":2,"success":true,"payment_method":"credit_card","surcharge_in_cents":136,"creator_name":"Web
107
+ Site Manager"},{"id":155920,"booking_id":333536,"amount_in_cents":10900,"client_id":null,"creator_id":4,"created_at":"2020-02-20T12:22:33.000+08:00","updated_at":"2020-02-20T12:22:45.000+08:00","till_id":3,"comment":"","payment_type_id":21,"success":false,"payment_method":"poli_pay","surcharge_in_cents":0,"creator_name":"Web
108
+ Site Manager"}],"payment_types_attributes":[{"id":5,"name":"American Express","description":"Payments
109
+ made by American Express through the payment gateway.","transaction_fee":"1.25","active":true,"position":3,"comment_required":false,"created_at":"2017-08-03T10:05:26.000+08:00","updated_at":"2017-12-15T07:37:59.000+08:00","credit_card_brand":"American
110
+ Express","payment_method":"credit_card","gateway":"braintree","restrict_refunds":false,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":true},{"id":14,"name":"MasterCard","description":"Payments
111
+ made by MasterCard through the payment gateway.","transaction_fee":"1.25","active":true,"position":4,"comment_required":false,"created_at":"2017-08-03T10:23:50.000+08:00","updated_at":"2017-12-01T02:54:42.000+08:00","credit_card_brand":"MasterCard","payment_method":"credit_card","gateway":"braintree","restrict_refunds":false,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":true},{"id":2,"name":"Visa","description":"Payments
112
+ paid by Visa through the payment gateway","transaction_fee":"1.25","active":true,"position":5,"comment_required":false,"created_at":"2017-05-01T13:27:46.000+08:00","updated_at":"2017-12-01T02:54:45.000+08:00","credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","restrict_refunds":false,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":true},{"id":21,"name":"POLiPay","description":"POLiPay
113
+ only online","transaction_fee":"0.0","active":true,"position":22,"comment_required":false,"created_at":"2017-09-27T14:39:23.000+08:00","updated_at":"2017-10-11T06:49:44.000+08:00","credit_card_brand":null,"payment_method":"poli_pay","gateway":null,"restrict_refunds":false,"on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":true,"background":false,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[],"creator":{"name":"Web
114
+ Site Manager","gravatar":"https://secure.gravatar.com/avatar/?secure=true\u0026gravatar=%7B%3Asize%3D%3E50%7D\u0026alt=Web%20Site%20Manager","url":"/parties/4"},"updator":{"name":"Web
115
+ Site Manager","gravatar":"https://secure.gravatar.com/avatar/?secure=true\u0026gravatar=%7B%3Asize%3D%3E50%7D\u0026alt=Web%20Site%20Manager","url":"/parties/4"},"company_creator":{"name":"Captain
116
+ Cook Cruises WA - Reservations","gravatar":"https://secure.gravatar.com/avatar/?secure=true\u0026gravatar=%7B%3Asize%3D%3E50%7D\u0026alt=Captain%20Cook%20Cruises%20WA%20-%20Reservations","url":"/parties/3"}}'
117
+ http_version:
118
+ recorded_at: Thu, 20 Feb 2020 04:49:22 GMT
119
+ recorded_with: VCR 2.9.3
@@ -83,14 +83,14 @@ http_interactions:
83
83
  notes_for_vendor","vendor_staff note_for_inventory_type_change"],"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":[{"id":3,"consumer_id":1,"consumer_splittable_id":2,"gross_in_cents":6000,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"},{"id":4,"consumer_id":2,"consumer_splittable_id":2,"gross_in_cents":6000,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1":3000,"2":3000}}],"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":[{"id":1,"consumer_id":1,"consumer_splittable_id":1,"gross_in_cents":0,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"},{"id":2,"consumer_id":2,"consumer_splittable_id":1,"gross_in_cents":0,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1":0,"2":0}}],"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
84
84
  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
85
85
  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":[]}'
86
- http_version:
86
+ http_version:
87
87
  recorded_at: Wed, 21 Mar 2018 04:40:17 GMT
88
88
  - request:
89
89
  method: put
90
90
  uri: http://test.qt.sealink.com.au:8080/api/bookings/1/update_with_nested_attributes.json
91
91
  body:
92
92
  encoding: UTF-8
93
- string: booking[customer_contact_name]=New%20Name&booking[consumers][][id]=1&booking[consumers][][title]=Mr&booking[consumers][][first_name]=New&booking[consumers][][last_name]=Name
93
+ string: booking%5Bcustomer_contact_name%5D=New%20Name&booking%5Bconsumers%5D%5B%5D%5Bid%5D=1&booking%5Bconsumers%5D%5B%5D%5Btitle%5D=Mr&booking%5Bconsumers%5D%5B%5D%5Bfirst_name%5D=New&booking%5Bconsumers%5D%5B%5D%5Blast_name%5D=Name
94
94
  headers:
95
95
  Content-Length:
96
96
  - '0'
@@ -141,7 +141,7 @@ http_interactions:
141
141
  body:
142
142
  encoding: UTF-8
143
143
  string: '{"id":1}'
144
- http_version:
144
+ http_version:
145
145
  recorded_at: Wed, 21 Mar 2018 04:40:18 GMT
146
146
  - request:
147
147
  method: get
@@ -227,6 +227,6 @@ http_interactions:
227
227
  notes_for_vendor","vendor_staff note_for_inventory_type_change"],"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":[{"id":3,"consumer_id":1,"consumer_splittable_id":2,"gross_in_cents":6000,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"},{"id":4,"consumer_id":2,"consumer_splittable_id":2,"gross_in_cents":6000,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1":3000,"2":3000}}],"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":[{"id":1,"consumer_id":1,"consumer_splittable_id":1,"gross_in_cents":0,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"},{"id":2,"consumer_id":2,"consumer_splittable_id":1,"gross_in_cents":0,"commission_in_cents":0,"consumer_splittable_type":"Reservation","created_at":null,"updated_at":null,"commission_percentage":"0.0","length_multiplier":"1.0"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"1":0,"2":0}}],"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
228
228
  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
229
229
  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":[]}'
230
- http_version:
230
+ http_version:
231
231
  recorded_at: Wed, 21 Mar 2018 04:40:19 GMT
232
232
  recorded_with: VCR 4.0.0
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/reservations.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: resource_id=4&first_travel_date=2016-03-01&passenger_types_numbers[1]=2&passenger_types_numbers[2]=1
8
+ string: resource_id=4&first_travel_date=2016-03-01&passenger_types_numbers%5B1%5D=2&passenger_types_numbers%5B2%5D=1
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -62,6 +62,6 @@ http_interactions:
62
62
  Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
63
63
  Priced as: Rack Rate","gross_including_packaged_item_in_cents":0,"pre_adjusted_gross_including_packaged_item_in_cents":0,"gross_in_cents":0,"pre_adjusted_gross_in_cents":0,"pre_adjusted_commission_in_cents":0,"cost_in_cents":0,"rules":[],"package":false,"sub_reservation_depth":0,"extra_pick":null,"child_resource":null,"pending_confirmation":false,"confirmation_request_fields":["pick_up_information","drop_off_information","vendor_pnr
64
64
  notes_for_vendor","vendor_staff note_for_inventory_type_change"],"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":{}}'
65
- http_version:
65
+ http_version:
66
66
  recorded_at: Wed, 21 Mar 2018 04:40:41 GMT
67
67
  recorded_with: VCR 4.0.0
@@ -0,0 +1,83 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://test.qt.sealink.com.au:8080/api/packages/464.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Length:
11
+ - '0'
12
+ X-Api-Key:
13
+ - <QT_KEY>
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Thu, 20 Feb 2020 01:00:56 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=d4476d9cd867237ab1e7ddfe8cab9bb7f1582160456; expires=Sat, 21-Mar-20
29
+ 01:00:56 GMT; path=/; domain=.quicktravel.com.au; HttpOnly; SameSite=Lax
30
+ - _session_id=HNhfu80YF9UuLdm9%2Fvd4OrAKDAwGgM7yyyxm5Hre5J6SCh1rK7pOCUrasl0eqcCxjItMZCX6GWErtUMjSUS%2BfLOfX8kg%2BEoaKm1O41EPp0aohkzYQ78%3D--ylH6XcOdnh0BcLnE--SKcJAqb%2B%2BAdJmnzJZ0i1%2Bg%3D%3D;
31
+ path=/; HttpOnly
32
+ Cache-Control:
33
+ - max-age=0, private, must-revalidate
34
+ Etag:
35
+ - W/"da1758ef2426563776eaed931d5175b9"
36
+ P3p:
37
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
38
+ Strict-Transport-Security:
39
+ - max-age=631138519
40
+ Vary:
41
+ - Origin
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Download-Options:
45
+ - noopen
46
+ X-Frame-Options:
47
+ - sameorigin
48
+ X-Rack-Cache:
49
+ - miss
50
+ X-Request-Id:
51
+ - 03c5ebc4-eb1d-4647-9d59-4f33e7417a76
52
+ X-Runtime:
53
+ - '0.141355'
54
+ X-Xss-Protection:
55
+ - 1; mode=block
56
+ Cf-Cache-Status:
57
+ - DYNAMIC
58
+ Expect-Ct:
59
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
60
+ Server:
61
+ - cloudflare
62
+ Cf-Ray:
63
+ - 567c8be46bd9f2e9-ADL
64
+ body:
65
+ encoding: UTF-8
66
+ string: '{"name":"Swan Valley Gourmet Wine Cruise (SVGWC-0945)","id":464,"type":"Package","product_type_id":11,"resource_groups":[{"title":"Perth
67
+ to Sandalford ","id":664,"pick":1,"minimum_required":false,"maximum_restriction":false,"minimum":null,"maximum":null,"product_type_id":21,"package_options":[],"type":"ResourceGroup","package_items":[{"id":2058,"default_selection":false,"type":"PackageItem","resource":{"id":486,"name":"Perth
68
+ to Mandoon/Sandalford","type":"Ship","package_item_id":2058,"product_type_id":21,"from_route_stop_id":351,"to_route_stop_id":353}}]},{"title":"Tour
69
+ Description \u0026 Vendor Items","id":665,"pick":1,"minimum_required":false,"maximum_restriction":false,"minimum":null,"maximum":null,"product_type_id":11,"package_options":[],"type":"ResourceGroup","package_items":[{"id":1828,"default_selection":false,"type":"PackageItem","resource":{"name":"Swan
70
+ Valley Gourmet Wine Cruise - Vendor Items \u0026 Tour Description","id":465,"type":"Package","product_type_id":11,"resource_groups":[{"title":"Tour
71
+ Description \u0026 Vendor Items","id":667,"pick":1,"minimum_required":false,"maximum_restriction":false,"minimum":null,"maximum":null,"product_type_id":20,"package_options":[],"type":"ResourceGroup","package_items":[{"id":1830,"default_selection":false,"type":"PackageItem","resource":{"id":397,"name":"SVGWC-0945
72
+ - Swan Valley Gourmet Wine Cruise","type":"GenericResource","package_item_id":1830,"product_type_id":20,"from_route_stop_id":null,"to_route_stop_id":null}},{"id":1831,"default_selection":false,"type":"PackageItem","resource":{"id":329,"name":"BELLS:
73
+ Morning Tea Package","type":"GenericResource","package_item_id":1831,"product_type_id":20,"from_route_stop_id":null,"to_route_stop_id":null}},{"id":1832,"default_selection":false,"type":"PackageItem","resource":{"id":330,"name":"BELLS:
74
+ Afternoon Tea Package","type":"GenericResource","package_item_id":1832,"product_type_id":20,"from_route_stop_id":null,"to_route_stop_id":null}},{"id":1833,"default_selection":false,"type":"PackageItem","resource":{"id":335,"name":"SANDALFORD
75
+ ESTATE: 2 Course Lunch \u0026 Wine Tasting","type":"GenericResource","package_item_id":1833,"product_type_id":20,"from_route_stop_id":null,"to_route_stop_id":null}}]}],"default_options":[]}}]},{"title":"Sandalford
76
+ to Perth","id":666,"pick":1,"minimum_required":false,"maximum_restriction":false,"minimum":null,"maximum":null,"product_type_id":21,"package_options":[],"type":"ResourceGroup","package_items":[{"id":2059,"default_selection":false,"type":"PackageItem","resource":{"id":487,"name":"Sandalford/Mandoon
77
+ to Perth","type":"Ship","package_item_id":2059,"product_type_id":21,"from_route_stop_id":354,"to_route_stop_id":356}}]},{"title":"Optional
78
+ Extra","id":713,"pick":0,"minimum_required":false,"maximum_restriction":false,"minimum":null,"maximum":null,"product_type_id":22,"package_options":[],"type":"ResourceGroup","package_items":[{"id":2087,"default_selection":false,"type":"PackageItem","resource":{"id":502,"name":"Premium
79
+ Beverage Upgrade (18+)","type":"Item","package_item_id":2087,"product_type_id":22,"from_route_stop_id":null,"to_route_stop_id":null}},{"id":2088,"default_selection":false,"type":"PackageItem","resource":{"id":503,"name":"Last
80
+ Minute Premium Beverage Upgrade (18+) ","type":"Item","package_item_id":2088,"product_type_id":22,"from_route_stop_id":null,"to_route_stop_id":null}}]}],"default_options":[]}'
81
+ http_version:
82
+ recorded_at: Thu, 20 Feb 2020 01:00:56 GMT
83
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,80 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://test.qt.sealink.com.au:8080/api/product_types.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Content-Length:
11
+ - '0'
12
+ X-Api-Key:
13
+ - <QT_KEY>
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Thu, 20 Feb 2020 01:01:30 GMT
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Connection:
26
+ - keep-alive
27
+ Set-Cookie:
28
+ - __cfduid=df7c89a7945a63958553e70497ede639a1582160490; expires=Sat, 21-Mar-20
29
+ 01:01:30 GMT; path=/; domain=.quicktravel.com.au; HttpOnly; SameSite=Lax
30
+ - _session_id=ohFEAurOFA0k3Dkfurpzg7yWDoevpE1we3n1pGout1j%2BCbEjjT9xDpMiVvY8FKGzDX8YDbEV2KYzlGqKmub84stiPt9YtKFD3o69iDPkSfqNbw9Xsng%3D--DBpWmmvc92dX5tYa--yXGiS4InGDOsWVI5ll1G7Q%3D%3D;
31
+ path=/; HttpOnly
32
+ Cache-Control:
33
+ - max-age=0, private, must-revalidate
34
+ Etag:
35
+ - W/"9e86e28ddbc8b9438ee44e55c192b7eb"
36
+ P3p:
37
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
38
+ Strict-Transport-Security:
39
+ - max-age=631138519
40
+ Vary:
41
+ - Origin
42
+ X-Content-Type-Options:
43
+ - nosniff
44
+ X-Download-Options:
45
+ - noopen
46
+ X-Frame-Options:
47
+ - sameorigin
48
+ X-Rack-Cache:
49
+ - miss
50
+ X-Request-Id:
51
+ - 95f9f85d-fe5d-4d5f-b52b-6a63c2613249
52
+ X-Runtime:
53
+ - '0.057441'
54
+ X-Xss-Protection:
55
+ - 1; mode=block
56
+ Cf-Cache-Status:
57
+ - DYNAMIC
58
+ Expect-Ct:
59
+ - max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
60
+ Server:
61
+ - cloudflare
62
+ Cf-Ray:
63
+ - 567c8cbae911f2e9-ADL
64
+ body:
65
+ encoding: UTF-8
66
+ string: '[{"id":6,"name":"Ferry","resource_class_name":"Ship","disclaimer_id":1,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":true,"prompt_for_pick_up_drop_off":false,"book_before_level":90,"book_before_units":"minutes","maximum_passengers_online":null,"confirmation_request_fields":[],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2017-07-31T13:58:21.000+08:00","updated_at":"2019-10-14T08:37:06.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":9,"name":"Miscellaneous
67
+ Item","resource_class_name":"Item","disclaimer_id":null,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":[],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2017-08-28T13:38:17.000+08:00","updated_at":"2017-08-28T13:38:17.000+08:00","code":"","needs_services":false,"can_have_quantity":true,"can_have_dates":false,"needs_passengers":false},{"id":10,"name":"Gift
68
+ Vouchers/Donations","resource_class_name":"GenericResource","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":[],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2017-09-27T08:47:40.000+08:00","updated_at":"2017-12-07T12:12:53.000+08:00","code":"GIFT","needs_services":false,"can_have_quantity":false,"can_have_dates":false,"needs_passengers":false},{"id":11,"name":"Rottnest
69
+ Packages","resource_class_name":"Package","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":false,"prompt_for_pick_up_drop_off":true,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["pick_up_information","drop_off_information","vendor_pnr","notes_for_vendor","vendor_staff","note_for_inventory_type_change"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2017-12-11T09:02:10.000+08:00","updated_at":"2018-08-17T08:38:42.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":12,"name":"OLD
70
+ Rottnest Island Bike Hire","resource_class_name":"GenericResource","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":false,"prompt_for_pick_up_drop_off":true,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["pick_up_information","drop_off_information","vendor_pnr","notes_for_vendor","vendor_staff"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2017-12-21T11:02:46.000+08:00","updated_at":"2018-10-29T11:33:29.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":13,"name":"Rottnest
71
+ Island Tours","resource_class_name":"GenericResource","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":false,"prompt_for_pick_up_drop_off":true,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["pick_up_information","drop_off_information","vendor_pnr","notes_for_vendor","vendor_staff"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2018-07-10T06:53:42.000+08:00","updated_at":"2018-07-10T06:53:42.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":15,"name":"Rottnest
72
+ Island Bike Hire","resource_class_name":"Item","disclaimer_id":2,"durational":true,"can_find_by_location":false,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["vendor_pnr","notes_for_vendor","vendor_staff"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2018-10-29T11:35:34.000+08:00","updated_at":"2020-02-06T06:29:50.000+08:00","code":"","needs_services":true,"can_have_quantity":true,"can_have_dates":true,"needs_passengers":false},{"id":16,"name":"Accommodation","resource_class_name":"Accommodation","disclaimer_id":2,"durational":true,"can_find_by_location":true,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["vendor_pnr","notes_for_vendor","vendor_staff","note_for_inventory_type_change"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2018-12-28T05:53:59.000+08:00","updated_at":"2019-03-14T05:08:22.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":17,"name":"Coach
73
+ Transfers","resource_class_name":"ScheduledTripResource","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":true,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["pick_up_information","drop_off_information","vendor_pnr","notes_for_vendor","vendor_staff","note_for_inventory_type_change"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2019-03-19T10:45:01.000+08:00","updated_at":"2019-03-19T10:45:01.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":18,"name":"Flights","resource_class_name":"ScheduledTripResource","disclaimer_id":2,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["trip_name","departure_time","pick_up_information","drop_off_information","vendor_pnr","notes_for_vendor","vendor_staff","note_for_inventory_type_change"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2019-09-23T14:17:51.000+08:00","updated_at":"2019-09-24T07:37:17.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":19,"name":"Extra
74
+ Picks","resource_class_name":"ExtraPick","disclaimer_id":null,"durational":true,"can_find_by_location":false,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["vendor_pnr","notes_for_vendor","vendor_staff","note_for_inventory_type_change"],"only_bookable_with_accommodation":true,"footer_itinerary_item":false,"created_at":"2019-09-30T08:07:18.000+08:00","updated_at":"2019-09-30T08:07:18.000+08:00","code":"","needs_services":true,"can_have_quantity":true,"can_have_dates":true,"needs_passengers":false},{"id":20,"name":"Captain
75
+ Cook Cruises - Tour \u0026 Vendor Resources","resource_class_name":"GenericResource","disclaimer_id":1,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":["reservation_group_id","vendor_pnr","notes_for_vendor"],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2019-11-28T09:10:55.000+08:00","updated_at":"2020-02-06T06:07:31.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":21,"name":"Captain
76
+ Cook Cruises - Ferry","resource_class_name":"Ship","disclaimer_id":1,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":true,"multi_leg":true,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":[],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2020-02-03T05:24:36.000+08:00","updated_at":"2020-02-03T05:24:36.000+08:00","code":"","needs_services":true,"can_have_quantity":false,"can_have_dates":true,"needs_passengers":true},{"id":22,"name":"Captain
77
+ Cook Cruises - Optional Upgrades","resource_class_name":"Item","disclaimer_id":1,"durational":false,"can_find_by_location":false,"measure_units_by_pax_count":false,"multi_leg":false,"prompt_for_pick_up_drop_off":false,"book_before_level":null,"book_before_units":"seconds","maximum_passengers_online":null,"confirmation_request_fields":[],"only_bookable_with_accommodation":false,"footer_itinerary_item":false,"created_at":"2020-02-06T06:08:10.000+08:00","updated_at":"2020-02-06T06:08:10.000+08:00","code":"","needs_services":true,"can_have_quantity":true,"can_have_dates":true,"needs_passengers":false}]'
78
+ http_version:
79
+ recorded_at: Thu, 20 Feb 2020 01:01:30 GMT
80
+ recorded_with: VCR 2.9.3
@@ -5,7 +5,7 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/price_quotes/calculate
6
6
  body:
7
7
  encoding: UTF-8
8
- string: reservations[][resource_id]=7&reservations[][quantity]=2&reservations[][first_travel_date]=2016-04-15
8
+ string: reservations%5B%5D%5Bresource_id%5D=7&reservations%5B%5D%5Bquantity%5D=2&reservations%5B%5D%5Bfirst_travel_date%5D=2016-04-15
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
@@ -56,14 +56,14 @@ http_interactions:
56
56
  body:
57
57
  encoding: UTF-8
58
58
  string: '{"quoted_booking_gross_in_cents":6400,"original_booking_gross_in_cents":0,"applied_rules":[],"quoted_booking_breakdown":[{"quoted_gross_in_cents":6400,"original_gross_in_cents":0,"applied_rules":[],"reservation":{"id":null,"resource_id":7,"first_travel_date":"2016-04-15","passengers":{},"vehicles":[]},"new":true,"deleted":false}]}'
59
- http_version:
59
+ http_version:
60
60
  recorded_at: Wed, 21 Mar 2018 04:40:31 GMT
61
61
  - request:
62
62
  method: post
63
63
  uri: http://test.qt.sealink.com.au:8080/api/price_quotes/calculate
64
64
  body:
65
65
  encoding: UTF-8
66
- string: reservations[][resource_id]=7&reservations[][quantity]=3&reservations[][first_travel_date]=2016-04-15
66
+ string: reservations%5B%5D%5Bresource_id%5D=7&reservations%5B%5D%5Bquantity%5D=3&reservations%5B%5D%5Bfirst_travel_date%5D=2016-04-15
67
67
  headers:
68
68
  Content-Length:
69
69
  - '0'
@@ -116,6 +116,6 @@ http_interactions:
116
116
  string: '{"quoted_booking_gross_in_cents":4800,"original_booking_gross_in_cents":0,"applied_rules":["Special
117
117
  Offer"],"quoted_booking_breakdown":[{"quoted_gross_in_cents":4800,"original_gross_in_cents":0,"applied_rules":["Special
118
118
  Offer"],"reservation":{"id":null,"resource_id":7,"first_travel_date":"2016-04-15","passengers":{},"vehicles":[]},"new":true,"deleted":false}]}'
119
- http_version:
119
+ http_version:
120
120
  recorded_at: Wed, 21 Mar 2018 04:40:31 GMT
121
121
  recorded_with: VCR 4.0.0
@@ -1,4 +1,4 @@
1
1
  require 'simplecov-rcov'
2
2
  require 'coveralls'
3
3
  require 'coverage/kit'
4
- Coverage::Kit.setup(minimum_coverage: 83)
4
+ Coverage::Kit.setup(minimum_coverage: 83.2)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quicktravel_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.1
4
+ version: 4.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Noack
@@ -10,84 +10,78 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2020-01-10 00:00:00.000000000 Z
13
+ date: 2020-12-02 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
17
17
  requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
- - - "~>"
19
+ - - ">="
20
20
  - !ruby/object:Gem::Version
21
- version: '0.17'
21
+ version: 0.18.1
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
- - - "~>"
26
+ - - ">="
27
27
  - !ruby/object:Gem::Version
28
- version: '0.17'
28
+ version: 0.18.1
29
29
  - !ruby/object:Gem::Dependency
30
- name: json
30
+ name: activesupport
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ">="
34
34
  - !ruby/object:Gem::Version
35
- version: '0'
35
+ version: 5.0.0
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: '0'
42
+ version: 5.0.0
43
43
  - !ruby/object:Gem::Dependency
44
- name: activesupport
44
+ name: facets
45
45
  requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 2.0.0
49
+ version: '0'
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 2.0.0
56
+ version: '0'
57
57
  - !ruby/object:Gem::Dependency
58
- name: facets
58
+ name: money
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ">="
62
62
  - !ruby/object:Gem::Version
63
- version: '0'
63
+ version: '6.0'
64
64
  type: :runtime
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
68
  - - ">="
69
69
  - !ruby/object:Gem::Version
70
- version: '0'
70
+ version: '6.0'
71
71
  - !ruby/object:Gem::Dependency
72
- name: money
72
+ name: money_extensions
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - ">="
76
76
  - !ruby/object:Gem::Version
77
- version: '3.0'
78
- - - "<"
79
- - !ruby/object:Gem::Version
80
- version: '6.0'
77
+ version: '1.0'
81
78
  type: :runtime
82
79
  prerelease: false
83
80
  version_requirements: !ruby/object:Gem::Requirement
84
81
  requirements:
85
82
  - - ">="
86
83
  - !ruby/object:Gem::Version
87
- version: '3.0'
88
- - - "<"
89
- - !ruby/object:Gem::Version
90
- version: '6.0'
84
+ version: '1.0'
91
85
  - !ruby/object:Gem::Dependency
92
86
  name: will_paginate
93
87
  requirement: !ruby/object:Gem::Requirement
@@ -108,14 +102,14 @@ dependencies:
108
102
  requirements:
109
103
  - - "~>"
110
104
  - !ruby/object:Gem::Version
111
- version: '1.7'
105
+ version: '2'
112
106
  type: :development
113
107
  prerelease: false
114
108
  version_requirements: !ruby/object:Gem::Requirement
115
109
  requirements:
116
110
  - - "~>"
117
111
  - !ruby/object:Gem::Version
118
- version: '1.7'
112
+ version: '2'
119
113
  - !ruby/object:Gem::Dependency
120
114
  name: rake
121
115
  requirement: !ruby/object:Gem::Requirement
@@ -288,8 +282,8 @@ files:
288
282
  - Rakefile
289
283
  - examples/example_config.rb
290
284
  - examples/login_example.rb
291
- - gemfiles/rails4.gemfile
292
285
  - gemfiles/rails5.gemfile
286
+ - gemfiles/rails6.gemfile
293
287
  - lib/extensions.rb
294
288
  - lib/quick_travel.rb
295
289
  - lib/quick_travel/accommodation.rb
@@ -319,6 +313,7 @@ files:
319
313
  - lib/quick_travel/init_from_hash.rb
320
314
  - lib/quick_travel/location.rb
321
315
  - lib/quick_travel/mock.rb
316
+ - lib/quick_travel/package.rb
322
317
  - lib/quick_travel/party.rb
323
318
  - lib/quick_travel/passenger.rb
324
319
  - lib/quick_travel/passenger_price_break.rb
@@ -366,6 +361,7 @@ files:
366
361
  - spec/country_spec.rb
367
362
  - spec/credit_card_spec.rb
368
363
  - spec/discounts_spec.rb
364
+ - spec/package_spec.rb
369
365
  - spec/passenger_type_spec.rb
370
366
  - spec/payment_type_spec.rb
371
367
  - spec/price_changes/price_change_spec.rb
@@ -396,6 +392,7 @@ files:
396
392
  - spec/support/cassettes/booking_price_changes.yml
397
393
  - spec/support/cassettes/booking_show.yml
398
394
  - spec/support/cassettes/booking_update.yml
395
+ - spec/support/cassettes/booking_with_comments.yml
399
396
  - spec/support/cassettes/booking_with_documents.yml
400
397
  - spec/support/cassettes/booking_with_nested_attributes.yml
401
398
  - spec/support/cassettes/booking_with_price_changes.yml
@@ -414,6 +411,8 @@ files:
414
411
  - spec/support/cassettes/opal_modern_pay_successful_update_response.yml
415
412
  - spec/support/cassettes/opal_pay.yml
416
413
  - spec/support/cassettes/opal_pay_booking.yml
414
+ - spec/support/cassettes/package_show.yml
415
+ - spec/support/cassettes/package_show_product_type.yml
417
416
  - spec/support/cassettes/passenger_all.yml
418
417
  - spec/support/cassettes/payment_info.yml
419
418
  - spec/support/cassettes/price_quote.yml
@@ -458,8 +457,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
458
457
  - !ruby/object:Gem::Version
459
458
  version: '0'
460
459
  requirements: []
461
- rubyforge_project:
462
- rubygems_version: 2.7.3
460
+ rubygems_version: 3.1.2
463
461
  signing_key:
464
462
  specification_version: 4
465
463
  summary: Booking process using QuickTravel API
@@ -471,6 +469,7 @@ test_files:
471
469
  - spec/country_spec.rb
472
470
  - spec/credit_card_spec.rb
473
471
  - spec/discounts_spec.rb
472
+ - spec/package_spec.rb
474
473
  - spec/passenger_type_spec.rb
475
474
  - spec/payment_type_spec.rb
476
475
  - spec/price_changes/price_change_spec.rb
@@ -501,6 +500,7 @@ test_files:
501
500
  - spec/support/cassettes/booking_price_changes.yml
502
501
  - spec/support/cassettes/booking_show.yml
503
502
  - spec/support/cassettes/booking_update.yml
503
+ - spec/support/cassettes/booking_with_comments.yml
504
504
  - spec/support/cassettes/booking_with_documents.yml
505
505
  - spec/support/cassettes/booking_with_nested_attributes.yml
506
506
  - spec/support/cassettes/booking_with_price_changes.yml
@@ -519,6 +519,8 @@ test_files:
519
519
  - spec/support/cassettes/opal_modern_pay_successful_update_response.yml
520
520
  - spec/support/cassettes/opal_pay.yml
521
521
  - spec/support/cassettes/opal_pay_booking.yml
522
+ - spec/support/cassettes/package_show.yml
523
+ - spec/support/cassettes/package_show_product_type.yml
522
524
  - spec/support/cassettes/passenger_all.yml
523
525
  - spec/support/cassettes/payment_info.yml
524
526
  - spec/support/cassettes/price_quote.yml
@@ -1,9 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec :path => '../'
3
-
4
- group :development, :test do
5
- gem 'activesupport', '~> 4.2'
6
- gem 'activerecord', '~> 4.2'
7
- gem 'actionpack', '~> 4.2'
8
- end
9
-