quicktravel_client 3.0.0 → 3.1.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/lib/quick_travel.rb +0 -2
- data/lib/quick_travel/booking.rb +4 -0
- data/lib/quick_travel/version.rb +1 -1
- data/spec/booking_spec.rb +19 -0
- data/spec/support/cassettes/booking_activate.yml +126 -0
- data/spec/support/cassettes/booking_cancel.yml +126 -0
- metadata +7 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 21adb65a239a49ec7121e7c60c347d3599056a75
         | 
| 4 | 
            +
              data.tar.gz: 5b5e26b87529048e7c6365756d6c50a345ff53dc
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9772cb57121b8dc267c0d8d4d7c13036079f38dff857459865600c963cb72ac7f99456b01de3777a7c256ca7ef4fd1c2d913116dccdc7a5f1900810b81712c8d
         | 
| 7 | 
            +
              data.tar.gz: 3c764251d247cb746a79099bbc019982aa6b9ec894e08a6ede5a598674356ab2edc318b868e90d68d32b4d0bb97d20fb01f2cfc7b87ddb4e2e5c48d1bb3eebb0
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -4,6 +4,10 @@ This project adheres to [Semantic Versioning](http://semver.org/). | |
| 4 4 | 
             
            This changelog adheres to [Keep a CHANGELOG](http://keepachangelog.com/).
         | 
| 5 5 |  | 
| 6 6 |  | 
| 7 | 
            +
            ## [3.1.0]
         | 
| 8 | 
            +
            ### Added
         | 
| 9 | 
            +
            - API to cancel a booking
         | 
| 10 | 
            +
             | 
| 7 11 | 
             
            ## [3.0.0]
         | 
| 8 12 | 
             
            ### Fixed
         | 
| 9 13 | 
             
            - Allow zero pricing for extra pick items
         | 
    
        data/lib/quick_travel.rb
    CHANGED
    
    
    
        data/lib/quick_travel/booking.rb
    CHANGED
    
    | @@ -275,6 +275,10 @@ module QuickTravel | |
| 275 275 | 
             
                  put_and_validate("#{api_base}/#{@id}/activate")
         | 
| 276 276 | 
             
                end
         | 
| 277 277 |  | 
| 278 | 
            +
                def cancel!
         | 
| 279 | 
            +
                  put_and_validate("#{api_base}/#{@id}/cancel")
         | 
| 280 | 
            +
                end
         | 
| 281 | 
            +
             | 
| 278 282 | 
             
                def subscribe_to_email_list(email = nil)
         | 
| 279 283 | 
             
                  params = email.nil? ? {} : { email: email }
         | 
| 280 284 | 
             
                  put_and_validate("#{api_base}/#{@id}/subscribe_to_email_list", params)
         | 
    
        data/lib/quick_travel/version.rb
    CHANGED
    
    
    
        data/spec/booking_spec.rb
    CHANGED
    
    | @@ -122,6 +122,7 @@ end | |
| 122 122 | 
             
            describe QuickTravel::Booking do
         | 
| 123 123 | 
             
              let(:booking) { QuickTravel::Booking.find(1) }
         | 
| 124 124 | 
             
              subject(:consumer) { booking.passengers.first }
         | 
| 125 | 
            +
             | 
| 125 126 | 
             
              it 'should updated nested attributes' do
         | 
| 126 127 | 
             
                updated_booking = nil
         | 
| 127 128 | 
             
                VCR.use_cassette('booking_with_nested_attributes') do
         | 
| @@ -167,3 +168,21 @@ describe QuickTravel::Booking, 'when booking accommodation' do | |
| 167 168 | 
             
                expect(reservation.passenger_ids).to eq booking.passenger_ids
         | 
| 168 169 | 
             
              end
         | 
| 169 170 | 
             
            end
         | 
| 171 | 
            +
             | 
| 172 | 
            +
            describe QuickTravel::Booking, 'when changing state' do
         | 
| 173 | 
            +
              let(:booking) { QuickTravel::Booking.find(2) }
         | 
| 174 | 
            +
             | 
| 175 | 
            +
              it 'should be able to activate the booking' do
         | 
| 176 | 
            +
                VCR.use_cassette('booking_activate') do
         | 
| 177 | 
            +
                  response = booking.activate!
         | 
| 178 | 
            +
                  expect(response["success"]).to eq true
         | 
| 179 | 
            +
                end
         | 
| 180 | 
            +
              end
         | 
| 181 | 
            +
             | 
| 182 | 
            +
              it 'should be able to cancel the booking' do
         | 
| 183 | 
            +
                VCR.use_cassette('booking_cancel') do
         | 
| 184 | 
            +
                  response = booking.cancel!
         | 
| 185 | 
            +
                  expect(response["success"]).to eq true
         | 
| 186 | 
            +
                end
         | 
| 187 | 
            +
              end
         | 
| 188 | 
            +
            end
         | 
| @@ -0,0 +1,126 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            http_interactions:
         | 
| 3 | 
            +
            - request:
         | 
| 4 | 
            +
                method: get
         | 
| 5 | 
            +
                uri: http://test.qt.sealink.com.au:8080/api/bookings/2.json
         | 
| 6 | 
            +
                body:
         | 
| 7 | 
            +
                  encoding: UTF-8
         | 
| 8 | 
            +
                  string: access_key=<QT_KEY>
         | 
| 9 | 
            +
                headers:
         | 
| 10 | 
            +
                  Content-Length:
         | 
| 11 | 
            +
                  - '0'
         | 
| 12 | 
            +
              response:
         | 
| 13 | 
            +
                status:
         | 
| 14 | 
            +
                  code: 200
         | 
| 15 | 
            +
                  message: 'OK '
         | 
| 16 | 
            +
                headers:
         | 
| 17 | 
            +
                  P3p:
         | 
| 18 | 
            +
                  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
         | 
| 19 | 
            +
                  Content-Type:
         | 
| 20 | 
            +
                  - application/json; charset=utf-8
         | 
| 21 | 
            +
                  X-Ua-Compatible:
         | 
| 22 | 
            +
                  - IE=Edge,chrome=1
         | 
| 23 | 
            +
                  Etag:
         | 
| 24 | 
            +
                  - '"f9c3f39d2b9b1d8cf382131ae097a3ef"'
         | 
| 25 | 
            +
                  Cache-Control:
         | 
| 26 | 
            +
                  - max-age=0, private, must-revalidate
         | 
| 27 | 
            +
                  X-Request-Id:
         | 
| 28 | 
            +
                  - 86e84036182fc30c8dc7f05092153ae8
         | 
| 29 | 
            +
                  X-Runtime:
         | 
| 30 | 
            +
                  - '0.754949'
         | 
| 31 | 
            +
                  Vary:
         | 
| 32 | 
            +
                  - Origin
         | 
| 33 | 
            +
                  Date:
         | 
| 34 | 
            +
                  - Fri, 01 Jan 2016 02:30:37 GMT
         | 
| 35 | 
            +
                  X-Rack-Cache:
         | 
| 36 | 
            +
                  - miss
         | 
| 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.2.5/2016-04-26)
         | 
| 49 | 
            +
                  Content-Length:
         | 
| 50 | 
            +
                  - '7627'
         | 
| 51 | 
            +
                  Connection:
         | 
| 52 | 
            +
                  - Keep-Alive
         | 
| 53 | 
            +
                  Set-Cookie:
         | 
| 54 | 
            +
                  - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWY4MzBlNzA4ODI0YTE5ZWM1ZjNiODdiOGEyMzRlYWQyBjsAVEkiCXVzZXIGOwBGaQY%3D--c8d6e00c01ca6a6474f4bc54de9274c1f08f1456;
         | 
| 55 | 
            +
                    path=/; HttpOnly
         | 
| 56 | 
            +
                body:
         | 
| 57 | 
            +
                  encoding: UTF-8
         | 
| 58 | 
            +
                  string: '{"id":2,"state":"new","reference":"222224","public_comments":null,"internal_comments":null,"customer_contact_name":null,"customer_contact_phone":null,"customer_contact_mobile":null,"customer_contact_email":null,"currency_iso_code":"AUD","country_id":14,"post_code":null,"referral_code_id":1,"external_identifier":null,"created_at":"2016-05-11T13:09:47+09:30","updated_at":"2016-07-13T12:00:24+09:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":25000,"nett_in_cents":25000,"gross_in_cents":25000,"commission_in_cents":0,"balance_in_cents":25000,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":null,"deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2016-09-02T00:00:00+09:30"},"balance_due_on":{"_type":"Date","_value":"2016-09-02T00:00:00+09:30"},"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","discardable_in":279420,"inactivatable_in":279370,"notices":{},"client":null,"passenger_ids":[3,4],"vehicle_ids":[],"reservation_ids":[4,5],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[{"id":3,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":1},{"id":4,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":2}],"vehicles_attributes":[],"reservations_attributes":[{"id":4,"booking_id":2,"description":"","comment":"","active":true,"service_ids":[58],"resource_id":12,"quantity":null,"adjustments_attributes":[],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"product_type_id":9,"itinerary_footer":false,"fare_basis_set_id":14,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":7,"pick_up_info":null,"drop_off_info":null,"selection_name":"Dinner
         | 
| 59 | 
            +
                    Cruise","product_name_underscore":"cruise","resource_class_name_underscore":"generic_resource","resource_class_name":"GenericResource","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"durational":false,"duration":1,"duration_units":"Days","date_start_label":"Start
         | 
| 60 | 
            +
                    Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
         | 
| 61 | 
            +
                    Priced as: Rack Rate","gross_including_packaged_item_in_cents":25000,"pre_adjusted_gross_including_packaged_item_in_cents":25000,"gross_in_cents":20000,"pre_adjusted_gross_in_cents":20000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":6000,"sub_items_gross_in_cents":5000,"rules":[],"package":false,"sub_reservation_depth":0,"sub_reservations_attributes":[{"id":5,"booking_id":2,"description":"","comment":null,"active":true,"service_ids":[62],"resource_id":13,"quantity":null,"adjustments_attributes":[],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"product_type_id":9,"itinerary_footer":false,"fare_basis_set_id":16,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":8,"pick_up_info":null,"drop_off_info":null,"selection_name":"Dinner
         | 
| 62 | 
            +
                    Cruise Window","product_name_underscore":"cruise","resource_class_name_underscore":"generic_resource","resource_class_name":"GenericResource","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"durational":false,"duration":1,"duration_units":"Days","date_start_label":"Start
         | 
| 63 | 
            +
                    Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
         | 
| 64 | 
            +
                    Priced as: Rack Rate","gross_including_packaged_item_in_cents":5000,"pre_adjusted_gross_including_packaged_item_in_cents":5000,"gross_in_cents":5000,"pre_adjusted_gross_in_cents":5000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":0,"rules":[],"package":false,"sub_reservation_depth":1,"extra_pick":null,"child_resource":true,"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":[3,4],"passenger_splits":[{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":3,"consumer_splittable_id":5,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T16:58:08+09:30","gross_in_cents":2500,"id":17,"updated_at":"2016-05-11T16:58:08+09:30"},{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":4,"consumer_splittable_id":5,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T16:58:08+09:30","gross_in_cents":2500,"id":18,"updated_at":"2016-05-11T16:58:08+09:30"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"3":2500,"4":2500}}],"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":[3,4],"passenger_splits":[{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":3,"consumer_splittable_id":4,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T13:10:20+09:30","gross_in_cents":10000,"id":15,"updated_at":"2016-05-11T13:10:20+09:30"},{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":4,"consumer_splittable_id":4,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T13:10:20+09:30","gross_in_cents":10000,"id":16,"updated_at":"2016-05-11T13:10:20+09:30"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"3":10000,"4":10000}}],"adjustments_attributes":[],"payments_attributes":[],"payment_types_attributes":[{"id":5,"name":"master","description":"master","transaction_fee":"0.0","active":true,"position":2,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"MasterCard","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":4,"name":"visa","description":"visa","transaction_fee":"0.0","active":true,"position":3,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":7,"name":"PayPal","description":"Payments
         | 
| 65 | 
            +
                    made via PayPal account","transaction_fee":"0.0","active":true,"position":6,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":"2013-03-01T00:00:03+10:30","updated_at":"2013-03-01T00:00:03+10:30","credit_card_brand":null,"payment_method":"paypal","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[]}'
         | 
| 66 | 
            +
                http_version: 
         | 
| 67 | 
            +
              recorded_at: Tue, 20 Jun 2017 06:46:15 GMT
         | 
| 68 | 
            +
            - request:
         | 
| 69 | 
            +
                method: put
         | 
| 70 | 
            +
                uri: http://test.qt.sealink.com.au:8080/api/bookings/2/activate
         | 
| 71 | 
            +
                body:
         | 
| 72 | 
            +
                  encoding: UTF-8
         | 
| 73 | 
            +
                  string: access_key=<QT_KEY>
         | 
| 74 | 
            +
                headers:
         | 
| 75 | 
            +
                  Content-Length:
         | 
| 76 | 
            +
                  - '0'
         | 
| 77 | 
            +
              response:
         | 
| 78 | 
            +
                status:
         | 
| 79 | 
            +
                  code: 200
         | 
| 80 | 
            +
                  message: 'OK '
         | 
| 81 | 
            +
                headers:
         | 
| 82 | 
            +
                  P3p:
         | 
| 83 | 
            +
                  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
         | 
| 84 | 
            +
                  Content-Type:
         | 
| 85 | 
            +
                  - application/json; charset=utf-8
         | 
| 86 | 
            +
                  X-Ua-Compatible:
         | 
| 87 | 
            +
                  - IE=Edge,chrome=1
         | 
| 88 | 
            +
                  Etag:
         | 
| 89 | 
            +
                  - '"7363e85fe9edee6f053a4b319588c086"'
         | 
| 90 | 
            +
                  Cache-Control:
         | 
| 91 | 
            +
                  - max-age=0, private, must-revalidate
         | 
| 92 | 
            +
                  X-Request-Id:
         | 
| 93 | 
            +
                  - fdbb18cc915ba08eb7b99383836ddaff
         | 
| 94 | 
            +
                  X-Runtime:
         | 
| 95 | 
            +
                  - '0.412926'
         | 
| 96 | 
            +
                  Vary:
         | 
| 97 | 
            +
                  - Origin
         | 
| 98 | 
            +
                  Date:
         | 
| 99 | 
            +
                  - Fri, 01 Jan 2016 02:30:37 GMT
         | 
| 100 | 
            +
                  X-Rack-Cache:
         | 
| 101 | 
            +
                  - invalidate, pass
         | 
| 102 | 
            +
                  X-Content-Type-Options:
         | 
| 103 | 
            +
                  - nosniff
         | 
| 104 | 
            +
                  X-Download-Options:
         | 
| 105 | 
            +
                  - noopen
         | 
| 106 | 
            +
                  X-Frame-Options:
         | 
| 107 | 
            +
                  - sameorigin
         | 
| 108 | 
            +
                  X-Permitted-Cross-Domain-Policies:
         | 
| 109 | 
            +
                  - none
         | 
| 110 | 
            +
                  X-Xss-Protection:
         | 
| 111 | 
            +
                  - 1; mode=block
         | 
| 112 | 
            +
                  Server:
         | 
| 113 | 
            +
                  - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
         | 
| 114 | 
            +
                  Content-Length:
         | 
| 115 | 
            +
                  - '16'
         | 
| 116 | 
            +
                  Connection:
         | 
| 117 | 
            +
                  - Keep-Alive
         | 
| 118 | 
            +
                  Set-Cookie:
         | 
| 119 | 
            +
                  - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWM1NjJjYTg0NGJjNTAyZGQwYjE4Mjg5N2U4YzNjNDUzBjsAVEkiCXVzZXIGOwBGaQY%3D--404ec16033facfec88e9a2ada7258dcbf1a6e41c;
         | 
| 120 | 
            +
                    path=/; HttpOnly
         | 
| 121 | 
            +
                body:
         | 
| 122 | 
            +
                  encoding: UTF-8
         | 
| 123 | 
            +
                  string: '{"success":true}'
         | 
| 124 | 
            +
                http_version: 
         | 
| 125 | 
            +
              recorded_at: Tue, 20 Jun 2017 06:46:15 GMT
         | 
| 126 | 
            +
            recorded_with: VCR 3.0.3
         | 
| @@ -0,0 +1,126 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            http_interactions:
         | 
| 3 | 
            +
            - request:
         | 
| 4 | 
            +
                method: get
         | 
| 5 | 
            +
                uri: http://test.qt.sealink.com.au:8080/api/bookings/2.json
         | 
| 6 | 
            +
                body:
         | 
| 7 | 
            +
                  encoding: UTF-8
         | 
| 8 | 
            +
                  string: access_key=<QT_KEY>
         | 
| 9 | 
            +
                headers:
         | 
| 10 | 
            +
                  Content-Length:
         | 
| 11 | 
            +
                  - '0'
         | 
| 12 | 
            +
              response:
         | 
| 13 | 
            +
                status:
         | 
| 14 | 
            +
                  code: 200
         | 
| 15 | 
            +
                  message: 'OK '
         | 
| 16 | 
            +
                headers:
         | 
| 17 | 
            +
                  P3p:
         | 
| 18 | 
            +
                  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
         | 
| 19 | 
            +
                  Content-Type:
         | 
| 20 | 
            +
                  - application/json; charset=utf-8
         | 
| 21 | 
            +
                  X-Ua-Compatible:
         | 
| 22 | 
            +
                  - IE=Edge,chrome=1
         | 
| 23 | 
            +
                  Etag:
         | 
| 24 | 
            +
                  - '"fa1d5415892abe0aa2fdee6fb27e8bac"'
         | 
| 25 | 
            +
                  Cache-Control:
         | 
| 26 | 
            +
                  - max-age=0, private, must-revalidate
         | 
| 27 | 
            +
                  X-Request-Id:
         | 
| 28 | 
            +
                  - cff7d946c49579f27c1c956f1826833c
         | 
| 29 | 
            +
                  X-Runtime:
         | 
| 30 | 
            +
                  - '0.746585'
         | 
| 31 | 
            +
                  Vary:
         | 
| 32 | 
            +
                  - Origin
         | 
| 33 | 
            +
                  Date:
         | 
| 34 | 
            +
                  - Fri, 01 Jan 2016 02:30:38 GMT
         | 
| 35 | 
            +
                  X-Rack-Cache:
         | 
| 36 | 
            +
                  - miss
         | 
| 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.2.5/2016-04-26)
         | 
| 49 | 
            +
                  Content-Length:
         | 
| 50 | 
            +
                  - '7622'
         | 
| 51 | 
            +
                  Connection:
         | 
| 52 | 
            +
                  - Keep-Alive
         | 
| 53 | 
            +
                  Set-Cookie:
         | 
| 54 | 
            +
                  - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTA5YmMyYzc1YTAxMDZhMWU1MjViMGI4NTY3NDcxNDJmBjsAVEkiCXVzZXIGOwBGaQY%3D--595dd5591137da8927d6a687da1b504ce6104998;
         | 
| 55 | 
            +
                    path=/; HttpOnly
         | 
| 56 | 
            +
                body:
         | 
| 57 | 
            +
                  encoding: UTF-8
         | 
| 58 | 
            +
                  string: '{"id":2,"state":"active","reference":"222224","public_comments":null,"internal_comments":null,"customer_contact_name":null,"customer_contact_phone":null,"customer_contact_mobile":null,"customer_contact_email":null,"currency_iso_code":"AUD","country_id":14,"post_code":null,"referral_code_id":1,"external_identifier":null,"created_at":"2016-05-11T13:09:47+09:30","updated_at":"2016-01-01T13:00:37+10:30","promo_code":null,"promo_code_id":null,"insurance_offered":false,"total_adjustments_in_cents":0,"pre_adjusted_gross_in_cents":25000,"nett_in_cents":25000,"gross_in_cents":25000,"commission_in_cents":0,"balance_in_cents":25000,"paid_in_cents":0,"surcharge_in_cents":0,"deposit_in_cents":0,"web_site_name":null,"deposit_relevant":false,"deposit_due_on":{"_type":"Date","_value":"2016-09-02T00:00:00+09:30"},"balance_due_on":{"_type":"Date","_value":"2016-09-02T00:00:00+09:30"},"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"complete":true,"reason_not_complete":"","first_reason_not_complete":"","discardable_in":60,"inactivatable_in":10,"notices":{},"client":null,"passenger_ids":[3,4],"vehicle_ids":[],"reservation_ids":[4,5],"adjustment_ids":[],"todo_items":[],"confirmation_requests":[],"passengers_attributes":[{"id":3,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":1},{"id":4,"title":null,"first_name":null,"last_name":null,"passenger_type_id":1,"age":30,"gender":null,"position":2}],"vehicles_attributes":[],"reservations_attributes":[{"id":4,"booking_id":2,"description":"","comment":"","active":true,"service_ids":[58],"resource_id":12,"quantity":null,"adjustments_attributes":[],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"product_type_id":9,"itinerary_footer":false,"fare_basis_set_id":14,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":7,"pick_up_info":null,"drop_off_info":null,"selection_name":"Dinner
         | 
| 59 | 
            +
                    Cruise","product_name_underscore":"cruise","resource_class_name_underscore":"generic_resource","resource_class_name":"GenericResource","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"durational":false,"duration":1,"duration_units":"Days","date_start_label":"Start
         | 
| 60 | 
            +
                    Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
         | 
| 61 | 
            +
                    Priced as: Rack Rate","gross_including_packaged_item_in_cents":25000,"pre_adjusted_gross_including_packaged_item_in_cents":25000,"gross_in_cents":20000,"pre_adjusted_gross_in_cents":20000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":6000,"sub_items_gross_in_cents":5000,"rules":[],"package":false,"sub_reservation_depth":0,"sub_reservations_attributes":[{"id":5,"booking_id":2,"description":"","comment":null,"active":true,"service_ids":[62],"resource_id":13,"quantity":null,"adjustments_attributes":[],"complete":true,"reason_not_complete":"","first_reason_not_complete":"","enough_time_before_travel_to_edit":true,"product_type_id":9,"itinerary_footer":false,"fare_basis_set_id":16,"manually_priced":false,"manually_assigned_fare_basis_set":false,"has_fare_basis":true,"fare_basis_season_name":"","fare_basis_pointer_id":8,"pick_up_info":null,"drop_off_info":null,"selection_name":"Dinner
         | 
| 62 | 
            +
                    Cruise Window","product_name_underscore":"cruise","resource_class_name_underscore":"generic_resource","resource_class_name":"GenericResource","has_ticket_template":false,"first_travel_date":{"_type":"Date","_value":"2016-09-02"},"last_travel_date":{"_type":"Date","_value":"2016-09-02"},"durational":false,"duration":1,"duration_units":"Days","date_start_label":"Start
         | 
| 63 | 
            +
                    Date:","date_end_label":"End Date:","expires":false,"expiry":"*NA*","has_skipped_reservation_groups":false,"editable_reservation_groups":[],"tariff_level_name":"Auto
         | 
| 64 | 
            +
                    Priced as: Rack Rate","gross_including_packaged_item_in_cents":5000,"pre_adjusted_gross_including_packaged_item_in_cents":5000,"gross_in_cents":5000,"pre_adjusted_gross_in_cents":5000,"pre_adjusted_commission_in_cents":0,"cost_in_cents":0,"rules":[],"package":false,"sub_reservation_depth":1,"extra_pick":null,"child_resource":true,"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":[3,4],"passenger_splits":[{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":3,"consumer_splittable_id":5,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T16:58:08+09:30","gross_in_cents":2500,"id":17,"updated_at":"2016-05-11T16:58:08+09:30"},{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":4,"consumer_splittable_id":5,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T16:58:08+09:30","gross_in_cents":2500,"id":18,"updated_at":"2016-05-11T16:58:08+09:30"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"3":2500,"4":2500}}],"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":[3,4],"passenger_splits":[{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":3,"consumer_splittable_id":4,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T13:10:20+09:30","gross_in_cents":10000,"id":15,"updated_at":"2016-05-11T13:10:20+09:30"},{"commission_in_cents":0,"commission_percentage":"0.0","consumer_id":4,"consumer_splittable_id":4,"consumer_splittable_type":"Reservation","created_at":"2016-05-11T13:10:20+09:30","gross_in_cents":10000,"id":16,"updated_at":"2016-05-11T13:10:20+09:30"}],"vehicle_ids":[],"vehicle_splits":[],"consumer_grosses":{"3":10000,"4":10000}}],"adjustments_attributes":[],"payments_attributes":[],"payment_types_attributes":[{"id":5,"name":"master","description":"master","transaction_fee":"0.0","active":true,"position":2,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"MasterCard","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":4,"name":"visa","description":"visa","transaction_fee":"0.0","active":true,"position":3,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":null,"updated_at":null,"credit_card_brand":"Visa","payment_method":"credit_card","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false},{"id":7,"name":"PayPal","description":"Payments
         | 
| 65 | 
            +
                    made via PayPal account","transaction_fee":"0.0","active":true,"position":6,"for_frequent_traveller_redemption":false,"comment_required":false,"created_at":"2013-03-01T00:00:03+10:30","updated_at":"2013-03-01T00:00:03+10:30","credit_card_brand":null,"payment_method":"paypal","gateway":"braintree","on_account":false,"ticket_holding":false,"requires_staff":false,"internal":false,"redirect":false,"background":true,"creditlink":false,"surchargeable":false}],"issued_tickets_attributes":[]}'
         | 
| 66 | 
            +
                http_version: 
         | 
| 67 | 
            +
              recorded_at: Tue, 20 Jun 2017 06:46:16 GMT
         | 
| 68 | 
            +
            - request:
         | 
| 69 | 
            +
                method: put
         | 
| 70 | 
            +
                uri: http://test.qt.sealink.com.au:8080/api/bookings/2/cancel
         | 
| 71 | 
            +
                body:
         | 
| 72 | 
            +
                  encoding: UTF-8
         | 
| 73 | 
            +
                  string: access_key=<QT_KEY>
         | 
| 74 | 
            +
                headers:
         | 
| 75 | 
            +
                  Content-Length:
         | 
| 76 | 
            +
                  - '0'
         | 
| 77 | 
            +
              response:
         | 
| 78 | 
            +
                status:
         | 
| 79 | 
            +
                  code: 200
         | 
| 80 | 
            +
                  message: 'OK '
         | 
| 81 | 
            +
                headers:
         | 
| 82 | 
            +
                  P3p:
         | 
| 83 | 
            +
                  - CP="IDC DSP CAO COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
         | 
| 84 | 
            +
                  Content-Type:
         | 
| 85 | 
            +
                  - application/json; charset=utf-8
         | 
| 86 | 
            +
                  X-Ua-Compatible:
         | 
| 87 | 
            +
                  - IE=Edge,chrome=1
         | 
| 88 | 
            +
                  Etag:
         | 
| 89 | 
            +
                  - '"7363e85fe9edee6f053a4b319588c086"'
         | 
| 90 | 
            +
                  Cache-Control:
         | 
| 91 | 
            +
                  - max-age=0, private, must-revalidate
         | 
| 92 | 
            +
                  X-Request-Id:
         | 
| 93 | 
            +
                  - 9e6570c0c769ae2ec54b467445a7aa73
         | 
| 94 | 
            +
                  X-Runtime:
         | 
| 95 | 
            +
                  - '0.832948'
         | 
| 96 | 
            +
                  Vary:
         | 
| 97 | 
            +
                  - Origin
         | 
| 98 | 
            +
                  Date:
         | 
| 99 | 
            +
                  - Fri, 01 Jan 2016 02:30:39 GMT
         | 
| 100 | 
            +
                  X-Rack-Cache:
         | 
| 101 | 
            +
                  - invalidate, pass
         | 
| 102 | 
            +
                  X-Content-Type-Options:
         | 
| 103 | 
            +
                  - nosniff
         | 
| 104 | 
            +
                  X-Download-Options:
         | 
| 105 | 
            +
                  - noopen
         | 
| 106 | 
            +
                  X-Frame-Options:
         | 
| 107 | 
            +
                  - sameorigin
         | 
| 108 | 
            +
                  X-Permitted-Cross-Domain-Policies:
         | 
| 109 | 
            +
                  - none
         | 
| 110 | 
            +
                  X-Xss-Protection:
         | 
| 111 | 
            +
                  - 1; mode=block
         | 
| 112 | 
            +
                  Server:
         | 
| 113 | 
            +
                  - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
         | 
| 114 | 
            +
                  Content-Length:
         | 
| 115 | 
            +
                  - '16'
         | 
| 116 | 
            +
                  Connection:
         | 
| 117 | 
            +
                  - Keep-Alive
         | 
| 118 | 
            +
                  Set-Cookie:
         | 
| 119 | 
            +
                  - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWU3ODQ0MzdiMzk0YTc1ZGYwODQ5MDNjOGI3MGJhYzljBjsAVEkiCXVzZXIGOwBGaQY%3D--2380c5a5b97863f99f5cb3a66fd58943746417e2;
         | 
| 120 | 
            +
                    path=/; HttpOnly
         | 
| 121 | 
            +
                body:
         | 
| 122 | 
            +
                  encoding: UTF-8
         | 
| 123 | 
            +
                  string: '{"success":true}'
         | 
| 124 | 
            +
                http_version: 
         | 
| 125 | 
            +
              recorded_at: Tue, 20 Jun 2017 06:46:17 GMT
         | 
| 126 | 
            +
            recorded_with: VCR 3.0.3
         | 
    
        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. | 
| 4 | 
            +
              version: 3.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Michael Noack
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2017-06- | 
| 13 | 
            +
            date: 2017-06-22 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: httparty
         | 
| @@ -367,6 +367,8 @@ files: | |
| 367 367 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips.yml
         | 
| 368 368 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips_multi_sector.yml
         | 
| 369 369 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips_unbookable.yml
         | 
| 370 | 
            +
            - spec/support/cassettes/booking_activate.yml
         | 
| 371 | 
            +
            - spec/support/cassettes/booking_cancel.yml
         | 
| 370 372 | 
             
            - spec/support/cassettes/booking_create.yml
         | 
| 371 373 | 
             
            - spec/support/cassettes/booking_documents.yml
         | 
| 372 374 | 
             
            - spec/support/cassettes/booking_price_changes.yml
         | 
| @@ -423,7 +425,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 423 425 | 
             
                  version: '0'
         | 
| 424 426 | 
             
            requirements: []
         | 
| 425 427 | 
             
            rubyforge_project: 
         | 
| 426 | 
            -
            rubygems_version: 2.5. | 
| 428 | 
            +
            rubygems_version: 2.4.5.1
         | 
| 427 429 | 
             
            signing_key: 
         | 
| 428 430 | 
             
            specification_version: 4
         | 
| 429 431 | 
             
            summary: Booking process using QuickTravel API
         | 
| @@ -454,6 +456,8 @@ test_files: | |
| 454 456 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips.yml
         | 
| 455 457 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips_multi_sector.yml
         | 
| 456 458 | 
             
            - spec/support/cassettes/basic_product_scheduled_trips_unbookable.yml
         | 
| 459 | 
            +
            - spec/support/cassettes/booking_activate.yml
         | 
| 460 | 
            +
            - spec/support/cassettes/booking_cancel.yml
         | 
| 457 461 | 
             
            - spec/support/cassettes/booking_create.yml
         | 
| 458 462 | 
             
            - spec/support/cassettes/booking_documents.yml
         | 
| 459 463 | 
             
            - spec/support/cassettes/booking_price_changes.yml
         |