quicktravel_client 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 21adb65a239a49ec7121e7c60c347d3599056a75
4
- data.tar.gz: 5b5e26b87529048e7c6365756d6c50a345ff53dc
3
+ metadata.gz: 17de53c54db5f143fc8e6f38e0ddfcf1342970e1
4
+ data.tar.gz: 638fff7cb6f4adf684782d4f37d1ec2da2dbc563
5
5
  SHA512:
6
- metadata.gz: 9772cb57121b8dc267c0d8d4d7c13036079f38dff857459865600c963cb72ac7f99456b01de3777a7c256ca7ef4fd1c2d913116dccdc7a5f1900810b81712c8d
7
- data.tar.gz: 3c764251d247cb746a79099bbc019982aa6b9ec894e08a6ede5a598674356ab2edc318b868e90d68d32b4d0bb97d20fb01f2cfc7b87ddb4e2e5c48d1bb3eebb0
6
+ metadata.gz: e04a9695af61b229d37e9b3f9ce7d630f0c5ee7595dacbbb0a437ace9547a5dd53c8f409b54ca9c255c3f943529b0f69253b791e4fa60cf21b4775137a842b4f
7
+ data.tar.gz: d02ee5b83567d3e2c42ac982aa50f1777fddf0280acd21de2dfbf65db578d0a622d9c84c31e10d71bb419b7875a3ec6d8d8d07acc80d959e6000658c9f5d5b23
data/CHANGELOG.md CHANGED
@@ -3,6 +3,9 @@ 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
+ ## [3.2.0]
7
+ ### Changed
8
+ - Return status with QuickTravel::AdapterError
6
9
 
7
10
  ## [3.1.0]
8
11
  ### Added
@@ -1,17 +1,20 @@
1
1
  module QuickTravel
2
2
  class AdapterError < StandardError
3
3
  attr_reader :response
4
+ attr_reader :status
4
5
 
5
6
  def initialize(response)
6
- @response = case response
7
- when String
8
- { 'error' => response }
9
- when HTTParty::Response
10
- response.parsed_response
11
- else
12
- fail "Unexpected response type #{response.class}"\
13
- "Should be String or HTTParty::Response"
14
- end
7
+ case response
8
+ when String
9
+ @response = { 'error' => response }
10
+ @status = 422
11
+ when HTTParty::Response
12
+ @response = response.parsed_response
13
+ @status = response.code
14
+ else
15
+ fail "Unexpected response type #{response.class}"\
16
+ "Should be String or HTTParty::Response"
17
+ end
15
18
 
16
19
  error_message = if @response.is_a? Hash
17
20
  @response.fetch('error', "We're sorry, but something went wrong. Please call us.")
@@ -1,3 +1,3 @@
1
1
  module QuickTravel
2
- VERSION = '3.1.0'
2
+ VERSION = '3.2.0'
3
3
  end
data/spec/booking_spec.rb CHANGED
@@ -186,3 +186,16 @@ describe QuickTravel::Booking, 'when changing state' do
186
186
  end
187
187
  end
188
188
  end
189
+
190
+ describe QuickTravel::Booking, "when booking doesn't exist" do
191
+ let(:booking) { QuickTravel::Booking.find_by_reference('111111') }
192
+
193
+ it 'should raise an error' do
194
+ VCR.use_cassette('booking_non_existant') do
195
+ expect{ booking }.to raise_error(QuickTravel::AdapterError) { |exception|
196
+ expect(exception.status).to eq 404
197
+ expect(exception.response).to eq({'error' => "Booking not found. It may have been removed due to inactivity"})
198
+ }
199
+ end
200
+ end
201
+ end
@@ -0,0 +1,59 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://test.qt.sealink.com.au:8080/api/bookings/reference/111111.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: 404
15
+ message: 'Not Found '
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
+ Cache-Control:
24
+ - no-cache
25
+ X-Request-Id:
26
+ - 620e301e261f4038453464856be47a9a
27
+ X-Runtime:
28
+ - '0.576024'
29
+ Vary:
30
+ - Origin
31
+ Date:
32
+ - Fri, 01 Jan 2016 02:32:07 GMT
33
+ X-Rack-Cache:
34
+ - miss
35
+ X-Content-Type-Options:
36
+ - nosniff
37
+ X-Download-Options:
38
+ - noopen
39
+ X-Frame-Options:
40
+ - sameorigin
41
+ X-Permitted-Cross-Domain-Policies:
42
+ - none
43
+ X-Xss-Protection:
44
+ - 1; mode=block
45
+ Server:
46
+ - WEBrick/1.3.1 (Ruby/2.2.5/2016-04-26)
47
+ Content-Length:
48
+ - '73'
49
+ Connection:
50
+ - Keep-Alive
51
+ Set-Cookie:
52
+ - _session_id=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTRlNDQwYjQxYmYwODAyM2IwOTVhZWRmZmViZmM3MDFlBjsAVEkiCXVzZXIGOwBGaQY%3D--77cc7c8dff3a0d680d605543218ef1419ead29da;
53
+ path=/; HttpOnly
54
+ body:
55
+ encoding: UTF-8
56
+ string: '{"error":"Booking not found. It may have been removed due to inactivity"}'
57
+ http_version:
58
+ recorded_at: Tue, 04 Jul 2017 07:39:13 GMT
59
+ recorded_with: VCR 3.0.3
@@ -1,4 +1,4 @@
1
1
  require 'simplecov-rcov'
2
2
  require 'coveralls'
3
3
  require 'coverage/kit'
4
- Coverage::Kit.setup(minimum_coverage: 82.10)
4
+ Coverage::Kit.setup(minimum_coverage: 82.53)
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.1.0
4
+ version: 3.2.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-22 00:00:00.000000000 Z
13
+ date: 2017-07-05 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: httparty
@@ -371,6 +371,7 @@ files:
371
371
  - spec/support/cassettes/booking_cancel.yml
372
372
  - spec/support/cassettes/booking_create.yml
373
373
  - spec/support/cassettes/booking_documents.yml
374
+ - spec/support/cassettes/booking_non_existant.yml
374
375
  - spec/support/cassettes/booking_price_changes.yml
375
376
  - spec/support/cassettes/booking_show.yml
376
377
  - spec/support/cassettes/booking_update.yml
@@ -460,6 +461,7 @@ test_files:
460
461
  - spec/support/cassettes/booking_cancel.yml
461
462
  - spec/support/cassettes/booking_create.yml
462
463
  - spec/support/cassettes/booking_documents.yml
464
+ - spec/support/cassettes/booking_non_existant.yml
463
465
  - spec/support/cassettes/booking_price_changes.yml
464
466
  - spec/support/cassettes/booking_show.yml
465
467
  - spec/support/cassettes/booking_update.yml