quicktravel_client 3.8.1 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
-