quicktravel_client 3.7.0 → 4.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +5 -4
  4. data/CHANGELOG.md +30 -0
  5. data/gemfiles/rails6.gemfile +8 -0
  6. data/lib/quick_travel.rb +2 -0
  7. data/lib/quick_travel/adapter.rb +13 -25
  8. data/lib/quick_travel/booking.rb +6 -5
  9. data/lib/quick_travel/cache.rb +24 -5
  10. data/lib/quick_travel/checkout.rb +1 -1
  11. data/lib/quick_travel/client.rb +9 -1
  12. data/lib/quick_travel/init_from_hash.rb +4 -0
  13. data/lib/quick_travel/package.rb +13 -0
  14. data/lib/quick_travel/passenger_type.rb +1 -1
  15. data/lib/quick_travel/product_configuration.rb +1 -1
  16. data/lib/quick_travel/products/base.rb +4 -4
  17. data/lib/quick_travel/reservation.rb +1 -1
  18. data/lib/quick_travel/resource.rb +1 -1
  19. data/lib/quick_travel/route.rb +1 -1
  20. data/lib/quick_travel/route_stop.rb +8 -1
  21. data/lib/quick_travel/vehicle_type.rb +1 -1
  22. data/lib/quick_travel/version.rb +1 -1
  23. data/quicktravel_client.gemspec +5 -5
  24. data/spec/adapter_spec.rb +34 -3
  25. data/spec/booking_spec.rb +10 -0
  26. data/spec/checkout_spec.rb +0 -182
  27. data/spec/clients_spec.rb +42 -0
  28. data/spec/discounts_spec.rb +21 -21
  29. data/spec/package_spec.rb +24 -0
  30. data/spec/passenger_type_spec.rb +1 -1
  31. data/spec/product_configuration_spec.rb +11 -0
  32. data/spec/reservation_spec.rb +20 -0
  33. data/spec/spec_helper.rb +6 -3
  34. data/spec/support/cassettes/accommodation_reserve.yml +12 -4
  35. data/spec/support/cassettes/basic_product_scheduled_trips.yml +3 -1
  36. data/spec/support/cassettes/basic_product_scheduled_trips_multi_sector.yml +3 -1
  37. data/spec/support/cassettes/basic_product_scheduled_trips_unbookable.yml +3 -1
  38. data/spec/support/cassettes/booking_activate.yml +6 -2
  39. data/spec/support/cassettes/booking_cancel.yml +6 -2
  40. data/spec/support/cassettes/booking_create.yml +3 -1
  41. data/spec/support/cassettes/booking_create_accommodation.yml +3 -1
  42. data/spec/support/cassettes/booking_documents.yml +3 -1
  43. data/spec/support/cassettes/booking_non_existant.yml +3 -1
  44. data/spec/support/cassettes/booking_price_changes.yml +3 -1
  45. data/spec/support/cassettes/booking_show.yml +3 -1
  46. data/spec/support/cassettes/booking_update.yml +6 -2
  47. data/spec/support/cassettes/booking_with_comments.yml +119 -0
  48. data/spec/support/cassettes/booking_with_documents.yml +6 -2
  49. data/spec/support/cassettes/booking_with_nested_attributes.yml +9 -3
  50. data/spec/support/cassettes/booking_with_price_changes.yml +3 -1
  51. data/spec/support/cassettes/checkout_client_token.yml +3 -1
  52. data/spec/support/cassettes/client_templates.yml +120 -0
  53. data/spec/support/cassettes/countries.yml +3 -1
  54. data/spec/support/cassettes/country_all.yml +3 -1
  55. data/spec/support/cassettes/create_reservation_fail.yml +3 -1
  56. data/spec/support/cassettes/create_reservation_with_booking.yml +3 -1
  57. data/spec/support/cassettes/locations.yml +3 -1
  58. data/spec/support/cassettes/opal_modern_pay_failed_booking.yml +3 -1
  59. data/spec/support/cassettes/opal_modern_pay_failed_create.yml +3 -1
  60. data/spec/support/cassettes/opal_modern_pay_failed_update.yml +3 -1
  61. data/spec/support/cassettes/opal_modern_pay_successful_booking.yml +3 -1
  62. data/spec/support/cassettes/opal_modern_pay_successful_response.yml +3 -1
  63. data/spec/support/cassettes/opal_modern_pay_successful_update_response.yml +3 -1
  64. data/spec/support/cassettes/opal_pay.yml +3 -1
  65. data/spec/support/cassettes/opal_pay_booking.yml +3 -1
  66. data/spec/support/cassettes/package_show.yml +83 -0
  67. data/spec/support/cassettes/package_show_product_type.yml +80 -0
  68. data/spec/support/cassettes/passenger_all.yml +3 -1
  69. data/spec/support/cassettes/payment_info.yml +3 -1
  70. data/spec/support/cassettes/price_quote.yml +6 -2
  71. data/spec/support/cassettes/product_date_range_bookability.yml +3 -1
  72. data/spec/support/cassettes/product_show.yml +3 -1
  73. data/spec/support/cassettes/product_show_as_agent.yml +3 -1
  74. data/spec/support/cassettes/product_type_all.yml +3 -1
  75. data/spec/support/cassettes/product_type_resource_categories.yml +3 -1
  76. data/spec/support/cassettes/product_type_resource_categories_tickets.yml +3 -1
  77. data/spec/support/cassettes/product_type_routes.yml +3 -1
  78. data/spec/support/cassettes/property.yml +3 -1
  79. data/spec/support/cassettes/property_types.yml +3 -1
  80. data/spec/support/cassettes/region_show.yml +3 -1
  81. data/spec/support/cassettes/reservation_resource.yml +3 -1
  82. data/spec/support/cassettes/reservation_with_extra_picks.yml +9 -3
  83. data/spec/support/cassettes/resource_category_all.yml +3 -1
  84. data/spec/support/cassettes/resource_category_all_for_product_type_8.yml +3 -1
  85. data/spec/support/cassettes/resource_fare_bases.yml +3 -1
  86. data/spec/support/cassettes/resource_show.yml +3 -1
  87. data/spec/support/cassettes/resource_with_price.yml +3 -1
  88. data/spec/support/cassettes/settings_basic.yml +3 -1
  89. data/spec/support/cassettes/tenant_switcher.yml +6 -2
  90. data/spec/support/cassettes/wrong_url.yml +3 -1
  91. data/spec/support/coverage_loader.rb +1 -1
  92. metadata +35 -29
  93. data/gemfiles/rails4.gemfile +0 -9
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/bookings/reference/222223.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts/client_token.json?gateway=braintree
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -0,0 +1,120 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://test.qt.sealink.com.au:8080/api/clients/2.json
6
+ body:
7
+ encoding: UTF-8
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
+ P3p:
20
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
21
+ Content-Type:
22
+ - application/json; charset=utf-8
23
+ Etag:
24
+ - W/"651918ea3a399afbf3a755713a8511dd"
25
+ Cache-Control:
26
+ - max-age=0, private, must-revalidate
27
+ X-Request-Id:
28
+ - 0c6843e0-e8ae-47a1-b924-a10de907d9a8
29
+ X-Runtime:
30
+ - '0.188579'
31
+ Date:
32
+ - Fri, 01 Jan 2016 02:59:22 GMT
33
+ X-Rack-Cache:
34
+ - miss
35
+ Vary:
36
+ - Origin
37
+ X-Content-Type-Options:
38
+ - nosniff
39
+ X-Download-Options:
40
+ - noopen
41
+ X-Frame-Options:
42
+ - sameorigin
43
+ X-Permitted-Cross-Domain-Policies:
44
+ - none
45
+ X-Xss-Protection:
46
+ - 1; mode=block
47
+ Server:
48
+ - WEBrick/1.3.1 (Ruby/2.4.4/2018-03-28)
49
+ Content-Length:
50
+ - '130'
51
+ Connection:
52
+ - Keep-Alive
53
+ Set-Cookie:
54
+ - _session_id=YXoxbGRNb3k4UTFlb2RXM01UdUJLR25CY2Njb0szaXBYRkUyMnh3V3Y5OTcvQm1WS2tiYmhqSkc5dzdNWk5mc2p6aWt1NFhMOGJ6bnNGUlhIY2VvcnltSEg0ZHJyMldvaUw2Z1hTYkZvakk9LS1LWGUvQm0rQWlIMHVjcTJ5TmZFVXVBPT0%3D--891c529278599f4be47ecbcd76995319f87b95cc;
55
+ path=/; HttpOnly
56
+ body:
57
+ encoding: UTF-8
58
+ string: '{"id":2,"client_type_id":3,"party_id":9,"commission_level_id":null,"created_at":null,"external_identifier":null,"updated_at":null}'
59
+ http_version:
60
+ recorded_at: Tue, 20 Nov 2018 03:00:05 GMT
61
+ - request:
62
+ method: get
63
+ uri: http://test.qt.sealink.com.au:8080/api/clients/2/templates
64
+ body:
65
+ encoding: UTF-8
66
+ string: ''
67
+ headers:
68
+ Content-Length:
69
+ - '0'
70
+ X-API-KEY:
71
+ - <QT_KEY>
72
+ response:
73
+ status:
74
+ code: 200
75
+ message: 'OK '
76
+ headers:
77
+ P3p:
78
+ - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
79
+ Content-Type:
80
+ - application/json; charset=utf-8
81
+ Etag:
82
+ - W/"b6be9931bd0aa8a85b01110a597d8bb7"
83
+ Cache-Control:
84
+ - max-age=0, private, must-revalidate
85
+ X-Request-Id:
86
+ - 8ea40255-40e0-41f6-bffa-85c54ab8ff86
87
+ X-Runtime:
88
+ - '0.168409'
89
+ Date:
90
+ - Fri, 01 Jan 2016 02:59:22 GMT
91
+ X-Rack-Cache:
92
+ - miss
93
+ Vary:
94
+ - Origin
95
+ X-Content-Type-Options:
96
+ - nosniff
97
+ X-Download-Options:
98
+ - noopen
99
+ X-Frame-Options:
100
+ - sameorigin
101
+ X-Permitted-Cross-Domain-Policies:
102
+ - none
103
+ X-Xss-Protection:
104
+ - 1; mode=block
105
+ Server:
106
+ - WEBrick/1.3.1 (Ruby/2.4.4/2018-03-28)
107
+ Content-Length:
108
+ - '336'
109
+ Connection:
110
+ - Keep-Alive
111
+ Set-Cookie:
112
+ - _session_id=RmhvbVl3dlhyL2lqdzZCM2FGb3ZKa2x6cC9hWEtvUHMxZE8vcTluSXd6MTZUMVNDY0xxYnphUklrTVk1OXNVdmJBbFFjSndtVVlLRFFtN0pkbVFyejZGcVhSN251a0VtdnRULzZ5YmpkcWM9LS1QSVFmSmFTWnZqOWlOK280QU9Cem1nPT0%3D--ffb6e33b92be7dfc7b7efce9ccd06c5f691a4d83;
113
+ path=/; HttpOnly
114
+ body:
115
+ encoding: UTF-8
116
+ string: '{"vehicle_templates":[{"id":1,"length":5.0,"height":1.5,"width":1.8,"weight":1000.0,"details":"Holden
117
+ Commodore","registration":"ABC123","cargo":"None","vehicle_type_id":1,"party_id":9}],"passenger_templates":[{"id":1,"age":30,"title":"Mr","first_name":"Homer","last_name":"Simpson","gender":"Male","passenger_type_id":1,"party_id":9}]}'
118
+ http_version:
119
+ recorded_at: Tue, 20 Nov 2018 03:00:05 GMT
120
+ recorded_with: VCR 4.0.0
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/countries.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/countries.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ 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=2099-09-10&access_key=<QT_KEY>
8
+ string: resource_id=4&first_travel_date=2099-09-10
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 404
@@ -5,10 +5,12 @@ 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&access_key=<QT_KEY>
8
+ string: resource_id=4&first_travel_date=2016-03-01&passenger_types_numbers[1]=2&passenger_types_numbers[2]=1
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/locations.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/bookings.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: booking_id=5&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=modern-opal-failed-uid&payment[comment]=Test%20Opal%20Payment&access_key=<QT_KEY>
8
+ string: booking_id=5&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=modern-opal-failed-uid&payment[comment]=Test%20Opal%20Payment
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts/modern-opal-failed-uid.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: gateway_response[raw_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VoidTransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D&gateway_response[success]=false&gateway_response[meta_data][applicationInstanceId]=101166&gateway_response[meta_data][operatorId]=an_operator&access_key=<QT_KEY>
8
+ string: gateway_response[raw_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22VoidTransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D&gateway_response[success]=false&gateway_response[meta_data][applicationInstanceId]=101166&gateway_response[meta_data][operatorId]=an_operator
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 422
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/bookings.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: booking_id=6&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=modern-opal-uid&payment[comment]=Test%20Opal%20Payment&access_key=<QT_KEY>
8
+ string: booking_id=6&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=modern-opal-uid&payment[comment]=Test%20Opal%20Payment
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts/modern-opal-uid.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: gateway_response[raw_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D&gateway_response[success]=true&gateway_response[meta_data][applicationInstanceId]=101166&gateway_response[meta_data][operatorId]=an_operator&access_key=<QT_KEY>
8
+ string: gateway_response[raw_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D&gateway_response[success]=true&gateway_response[meta_data][applicationInstanceId]=101166&gateway_response[meta_data][operatorId]=an_operator
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/checkouts.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: booking_id=7&payment[gateway_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=opal-uid&payment[comment]=Test%20Opal%20Payment&payment[meta_data][applicationInstanceId]=101166&payment[meta_data][operatorId]=an_operator&access_key=<QT_KEY>
8
+ string: booking_id=7&payment[gateway_response]=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardNumber%22%3A%203085227007682330%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardBalance%22%3A%206546%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardSequenceNumber%22%3A%2055%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CILAmount%22%3A%200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AuthorizedAmount%22%3A%20890%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22SalesReferenceNumber%22%3A%2053183943%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionDTM%22%3A%20%222018-01-04T09%3A00%3A43.106%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22TransactionReferenceNumber%22%3A%201271099697%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22CardBlockState%22%3A%20false%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22AutoloadAmount%22%3A%200%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D&payment[payment_type_id]=10&payment[amount_in_cents]=10&payment[uid]=opal-uid&payment[comment]=Test%20Opal%20Payment&payment[meta_data][applicationInstanceId]=101166&payment[meta_data][operatorId]=an_operator
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -5,10 +5,12 @@ http_interactions:
5
5
  uri: http://test.qt.sealink.com.au:8080/api/bookings.json
6
6
  body:
7
7
  encoding: UTF-8
8
- string: access_key=<QT_KEY>
8
+ string: ''
9
9
  headers:
10
10
  Content-Length:
11
11
  - '0'
12
+ X-API-KEY:
13
+ - <QT_KEY>
12
14
  response:
13
15
  status:
14
16
  code: 200
@@ -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