ideal_postcodes 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/ci.yml +22 -0
  3. data/lib/ideal_postcodes.rb +1 -1
  4. data/lib/idealpostcodes/address.rb +28 -28
  5. data/lib/idealpostcodes/errors.rb +31 -26
  6. data/lib/idealpostcodes/key.rb +12 -11
  7. data/lib/idealpostcodes/postcode.rb +21 -20
  8. data/lib/idealpostcodes/util.rb +38 -25
  9. data/lib/idealpostcodes/version.rb +2 -2
  10. data/lib/idealpostcodes.rb +104 -92
  11. data/spec/addresses_spec.rb +63 -63
  12. data/spec/idealpostcodes_spec.rb +51 -51
  13. data/spec/keys_spec.rb +21 -21
  14. data/spec/postcodes_spec.rb +74 -63
  15. data/spec/spec_helper.rb +50 -29
  16. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_invalid_key.yml +39 -39
  17. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_limit_breached.yml +39 -39
  18. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_raises_an_exception_if_no_lookups_remaining.yml +39 -39
  19. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_returns_an_address_for_a_valid_UDPRN.yml +71 -71
  20. data/spec/vcr_cassettes/IdealPostcodes_Address_lookup_returns_nil_for_an_invalid_UDPRN.yml +39 -39
  21. data/spec/vcr_cassettes/IdealPostcodes_Address_search_is_sensitive_to_limit.yml +78 -78
  22. data/spec/vcr_cassettes/IdealPostcodes_Address_search_is_sensitive_to_page.yml +366 -366
  23. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_invalid_key.yml +39 -39
  24. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_limit_breached.yml +39 -39
  25. data/spec/vcr_cassettes/IdealPostcodes_Address_search_raises_an_exception_if_no_lookups_remaining.yml +39 -39
  26. data/spec/vcr_cassettes/IdealPostcodes_Address_search_returns_results_in_a_SearchResult_object.yml +270 -270
  27. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_details_returns_key_details.yml +58 -58
  28. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_returns_the_availability_status_of_a_key_false_key_.yml +42 -42
  29. data/spec/vcr_cassettes/IdealPostcodes_Key_lookup_returns_the_availability_status_of_a_key_true_key_.yml +42 -42
  30. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_is_sensitive_to_limit_parameter.yml +49 -49
  31. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_is_sensitive_to_radius_parament.yml +130 -130
  32. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_returns_an_array_of_postcodes_and_locations.yml +81 -81
  33. data/spec/vcr_cassettes/IdealPostcodes_Postcode_find_by_location_returns_an_empty_array_if_no_results_are_found.yml +40 -40
  34. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_invalid_key.yml +39 -39
  35. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_key_has_run_out_of_balance.yml +39 -39
  36. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_raises_an_exception_if_limit_has_been_reached.yml +39 -39
  37. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_returns_a_list_of_addresses_for_a_postcode.yml +265 -265
  38. data/spec/vcr_cassettes/IdealPostcodes_Postcode_lookup_returns_an_empty_array_if_postcode_does_not_exist.yml +39 -39
  39. data/spec/vcr_cassettes/IdealPostcodes_key_available_returns_false_if_key_is_unavailable.yml +42 -42
  40. data/spec/vcr_cassettes/IdealPostcodes_key_available_returns_true_if_key_is_available.yml +42 -42
  41. data/spec/vcr_cassettes/IdealPostcodes_key_details_raises_an_exception_if_no_secret_is_provided.yml +42 -42
  42. data/spec/vcr_cassettes/IdealPostcodes_key_details_returns_key_information.yml +58 -58
  43. data/spec/vcr_cassettes/IdealPostcodes_request_generates_a_HTTP_request.yml +265 -265
  44. data/spec/vcr_cassettes/IdealPostcodes_request_raises_authentication_error_if_invalid_key_is_provided.yml +39 -39
  45. data/spec/vcr_cassettes/IdealPostcodes_request_raises_limit_reached_error_if_a_limit_has_been_breached.yml +39 -39
  46. data/spec/vcr_cassettes/IdealPostcodes_request_raises_token_exhausted_error_if_key_balance_is_depleted.yml +39 -39
  47. metadata +4 -5
  48. data/.travis.yml +0 -9
@@ -1,56 +1,56 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe IdealPostcodes do
4
- describe '#request' do
5
- it 'generates a HTTP request' do
6
- response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
7
- expect(response[:code]).to eq(2000)
8
- end
9
- it 'raises an error if no key is provided' do
10
- IdealPostcodes.api_key = nil
11
- expect do
12
- response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
13
- end.to raise_error(IdealPostcodes::AuthenticationError)
14
- end
15
- it 'raises authentication error if invalid key is provided' do
16
- IdealPostcodes.api_key = 'foo'
17
- expect do
18
- response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
19
- end.to raise_error(IdealPostcodes::AuthenticationError)
20
- end
21
- it 'raises token exhausted error if key balance is depleted' do
22
- expect do
23
- response = IdealPostcodes.request :get, 'postcodes/ID1 CLIP'
24
- end.to raise_error(IdealPostcodes::TokenExhaustedError)
25
- end
26
- it 'raises limit reached error if a limit has been breached' do
27
- expect do
28
- response = IdealPostcodes.request :get, 'postcodes/ID1 CHOP'
29
- end.to raise_error(IdealPostcodes::LimitReachedError)
30
- end
31
- end
4
+ describe '#request' do
5
+ it 'generates a HTTP request' do
6
+ response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
7
+ expect(response[:code]).to eq(2000)
8
+ end
9
+ it 'raises an error if no key is provided' do
10
+ IdealPostcodes.api_key = nil
11
+ expect do
12
+ response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
13
+ end.to raise_error(IdealPostcodes::AuthenticationError)
14
+ end
15
+ it 'raises authentication error if invalid key is provided' do
16
+ IdealPostcodes.api_key = 'foo'
17
+ expect do
18
+ response = IdealPostcodes.request :get, 'postcodes/ID1 1QD'
19
+ end.to raise_error(IdealPostcodes::AuthenticationError)
20
+ end
21
+ it 'raises token exhausted error if key balance is depleted' do
22
+ expect do
23
+ response = IdealPostcodes.request :get, 'postcodes/ID1 CLIP'
24
+ end.to raise_error(IdealPostcodes::TokenExhaustedError)
25
+ end
26
+ it 'raises limit reached error if a limit has been breached' do
27
+ expect do
28
+ response = IdealPostcodes.request :get, 'postcodes/ID1 CHOP'
29
+ end.to raise_error(IdealPostcodes::LimitReachedError)
30
+ end
31
+ end
32
32
 
33
- describe '.key_available' do
34
- it 'returns true if key is available' do
35
- IdealPostcodes.api_key = "iddqd"
36
- expect(IdealPostcodes.key_available).to equal(true)
37
- end
38
- it 'returns false if key is unavailable' do
39
- IdealPostcodes.api_key = "idkfa"
40
- expect(IdealPostcodes.key_available).to equal(false)
41
- end
42
- end
33
+ describe '.key_available' do
34
+ it 'returns true if key is available' do
35
+ IdealPostcodes.api_key = 'iddqd'
36
+ expect(IdealPostcodes.key_available).to equal(true)
37
+ end
38
+ it 'returns false if key is unavailable' do
39
+ IdealPostcodes.api_key = 'idkfa'
40
+ expect(IdealPostcodes.key_available).to equal(false)
41
+ end
42
+ end
43
43
 
44
- describe '.key_details' do
45
- it 'raises an exception if no secret is provided' do
46
- expect {
47
- IdealPostcodes.key_details
48
- }.to raise_error(IdealPostcodes::AuthenticationError)
49
- end
50
- it 'returns key information' do
51
- IdealPostcodes.apply_secret(secret_key)
52
- response = IdealPostcodes.key_details
53
- expect(is_key(response)).to eq(true)
54
- end
55
- end
56
- end
44
+ describe '.key_details' do
45
+ it 'raises an exception if no secret is provided' do
46
+ expect { IdealPostcodes.key_details }.to raise_error(
47
+ IdealPostcodes::AuthenticationError
48
+ )
49
+ end
50
+ it 'returns key information' do
51
+ IdealPostcodes.apply_secret(secret_key)
52
+ response = IdealPostcodes.key_details
53
+ expect(is_key(response)).to eq(true)
54
+ end
55
+ end
56
+ end
data/spec/keys_spec.rb CHANGED
@@ -1,25 +1,25 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe IdealPostcodes::Key do
4
- describe '.lookup' do
5
- it 'returns the availability status of a key (true key)' do
6
- result = IdealPostcodes::Key.lookup "iddqd"
7
- expect(result[:available]).to eq(true)
8
- end
9
- it 'returns the availability status of a key (false key)' do
10
- result = IdealPostcodes::Key.lookup "idkfa"
11
- expect(result[:available]).to eq(false)
12
- end
13
- end
4
+ describe '.lookup' do
5
+ it 'returns the availability status of a key (true key)' do
6
+ result = IdealPostcodes::Key.lookup 'iddqd'
7
+ expect(result[:available]).to eq(true)
8
+ end
9
+ it 'returns the availability status of a key (false key)' do
10
+ result = IdealPostcodes::Key.lookup 'idkfa'
11
+ expect(result[:available]).to eq(false)
12
+ end
13
+ end
14
14
 
15
- describe '.lookup_details' do
16
- it 'returns key details' do
17
- result = IdealPostcodes::Key.lookup_details "gandhi", secret_key
18
- expect(result[:lookups_remaining]).to_not be_nil
19
- expect(result[:daily_limit]).to_not be_nil
20
- expect(result[:individual_limit]).to_not be_nil
21
- expect(result[:allowed_urls]).to_not be_nil
22
- expect(result[:notifications]).to_not be_nil
23
- end
24
- end
25
- end
15
+ describe '.lookup_details' do
16
+ it 'returns key details' do
17
+ result = IdealPostcodes::Key.lookup_details 'gandhi', secret_key
18
+ expect(result[:lookups_remaining]).to_not be_nil
19
+ expect(result[:daily_limit]).to_not be_nil
20
+ expect(result[:individual_limit]).to_not be_nil
21
+ expect(result[:allowed_urls]).to_not be_nil
22
+ expect(result[:notifications]).to_not be_nil
23
+ end
24
+ end
25
+ end
@@ -1,66 +1,77 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe IdealPostcodes::Postcode do
4
- describe '.lookup' do
5
- it 'returns a list of addresses for a postcode' do
6
- addresses = IdealPostcodes::Postcode.lookup 'ID1 1QD'
7
- expect(addresses.length).to be > 0
8
- addresses.each do |address|
9
- expect(is_address(address)).to eq(true)
10
- expect(address[:postcode]).to eq('ID1 1QD')
11
- end
12
- end
13
- it 'returns an empty array if postcode does not exist' do
14
- addresses = IdealPostcodes::Postcode.lookup 'ID1 KFA'
15
- expect(addresses.length).to eq(0)
16
- end
17
- it 'raises an exception if key has run out of balance' do
18
- expect {
19
- IdealPostcodes::Postcode.lookup 'ID1 CLIP'
20
- }.to raise_error(IdealPostcodes::TokenExhaustedError)
21
- end
22
- it 'raises an exception if limit has been reached' do
23
- expect {
24
- IdealPostcodes::Postcode.lookup 'ID1 CHOP'
25
- }.to raise_error(IdealPostcodes::LimitReachedError)
26
- end
27
- it 'raises an exception if invalid key' do
28
- IdealPostcodes.api_key = 'foo'
29
- expect {
30
- IdealPostcodes::Postcode.lookup 'ID1 1QD'
31
- }.to raise_error(IdealPostcodes::AuthenticationError)
32
- end
33
- end
34
- describe '.find_by_location' do
35
- it 'returns an array of postcodes and locations' do
36
- lon = 0.6298
37
- lat = 51.7923
38
- postcodes = IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat
39
- expect(postcodes.length).to be > 0
40
- postcodes.each do |postcode|
41
- expect(is_postcode_location(postcode)).to eq(true)
42
- end
43
- end
44
- it 'returns an empty array if no results are found' do
45
- lon = 0
46
- lat = 0
47
- postcodes = IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat
48
- expect(postcodes).to be_a(Array)
49
- expect(postcodes.length).to eq(0)
50
- end
51
- it 'is sensitive to limit parameter' do
52
- lon = 0.6298
53
- lat = 51.7923
54
- limit = 1
55
- postcodes = IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat, limit: limit
56
- expect(postcodes.length).to eq(limit)
57
- end
58
- it 'is sensitive to radius parament' do
59
- lon = 0.6298
60
- lat = 51.7923
61
- small_radius = IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat, radius: 10
62
- large_radius = IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat, radius: 100
63
- expect(large_radius.length > small_radius.length).to eq(true)
64
- end
65
- end
66
- end
4
+ describe '.lookup' do
5
+ it 'returns a list of addresses for a postcode' do
6
+ addresses = IdealPostcodes::Postcode.lookup 'ID1 1QD'
7
+ expect(addresses.length).to be > 0
8
+ addresses.each do |address|
9
+ expect(is_address(address)).to eq(true)
10
+ expect(address[:postcode]).to eq('ID1 1QD')
11
+ end
12
+ end
13
+ it 'returns an empty array if postcode does not exist' do
14
+ addresses = IdealPostcodes::Postcode.lookup 'ID1 KFA'
15
+ expect(addresses.length).to eq(0)
16
+ end
17
+ it 'raises an exception if key has run out of balance' do
18
+ expect { IdealPostcodes::Postcode.lookup 'ID1 CLIP' }.to raise_error(
19
+ IdealPostcodes::TokenExhaustedError
20
+ )
21
+ end
22
+ it 'raises an exception if limit has been reached' do
23
+ expect { IdealPostcodes::Postcode.lookup 'ID1 CHOP' }.to raise_error(
24
+ IdealPostcodes::LimitReachedError
25
+ )
26
+ end
27
+ it 'raises an exception if invalid key' do
28
+ IdealPostcodes.api_key = 'foo'
29
+ expect { IdealPostcodes::Postcode.lookup 'ID1 1QD' }.to raise_error(
30
+ IdealPostcodes::AuthenticationError
31
+ )
32
+ end
33
+ end
34
+ describe '.find_by_location' do
35
+ it 'returns an array of postcodes and locations' do
36
+ lon = 0.6298
37
+ lat = 51.7923
38
+ postcodes =
39
+ IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat
40
+ expect(postcodes.length).to be > 0
41
+ postcodes.each do |postcode|
42
+ expect(is_postcode_location(postcode)).to eq(true)
43
+ end
44
+ end
45
+ it 'returns an empty array if no results are found' do
46
+ lon = 0
47
+ lat = 0
48
+ postcodes =
49
+ IdealPostcodes::Postcode.find_by_location longitude: lon, latitude: lat
50
+ expect(postcodes).to be_a(Array)
51
+ expect(postcodes.length).to eq(0)
52
+ end
53
+ it 'is sensitive to limit parameter' do
54
+ lon = 0.6298
55
+ lat = 51.7923
56
+ limit = 1
57
+ postcodes =
58
+ IdealPostcodes::Postcode.find_by_location longitude: lon,
59
+ latitude: lat,
60
+ limit: limit
61
+ expect(postcodes.length).to eq(limit)
62
+ end
63
+ it 'is sensitive to radius parament' do
64
+ lon = 0.6298
65
+ lat = 51.7923
66
+ small_radius =
67
+ IdealPostcodes::Postcode.find_by_location longitude: lon,
68
+ latitude: lat,
69
+ radius: 10
70
+ large_radius =
71
+ IdealPostcodes::Postcode.find_by_location longitude: lon,
72
+ latitude: lat,
73
+ radius: 100
74
+ expect(large_radius.length > small_radius.length).to eq(true)
75
+ end
76
+ end
77
+ end
data/spec/spec_helper.rb CHANGED
@@ -5,64 +5,85 @@ require 'webmock'
5
5
  WebMock.enable!
6
6
 
7
7
  VCR.configure do |c|
8
- c.cassette_library_dir = 'spec/vcr_cassettes'
9
- c.hook_into :webmock
8
+ c.cassette_library_dir = 'spec/vcr_cassettes'
9
+ c.hook_into :webmock
10
10
  end
11
11
 
12
12
  # Configure Ideal Postcodes lib
13
13
  require 'ideal_postcodes'
14
14
 
15
15
  RSpec.configure do |c|
16
- c.before(:each) do
16
+ c.before(:each) do
17
17
  IdealPostcodes.base_url = 'https://localhost:1337'
18
- IdealPostcodes.api_key = "gandhi"
19
- IdealPostcodes.apply_secret nil
18
+ IdealPostcodes.api_key = 'gandhi'
19
+ IdealPostcodes.apply_secret nil
20
20
  end
21
21
 
22
- c.around(:each) do |example|
23
- VCR.use_cassette(example.metadata[:full_description]) do
24
- example.run
25
- end
26
- end
22
+ c.around(:each) do |example|
23
+ VCR.use_cassette(example.metadata[:full_description]) { example.run }
24
+ end
27
25
  end
28
26
 
29
- def contains_attributes attribute_list, target
30
- result = true
31
- attribute_list.each do |attribute|
32
- result = false if target[attribute].nil?
33
- end
34
- result
27
+ def contains_attributes(attribute_list, target)
28
+ result = true
29
+ attribute_list.each { |attribute| result = false if target[attribute].nil? }
30
+ result
35
31
  end
36
32
 
37
33
  def postcode_location_elements
38
- [:postcode, :longitude, :latitude, :northings, :eastings]
34
+ %i[postcode longitude latitude northings eastings]
39
35
  end
40
36
 
41
37
  def is_postcode_location(postcode)
42
- contains_attributes postcode_location_elements, postcode
38
+ contains_attributes postcode_location_elements, postcode
43
39
  end
44
40
 
45
41
  def address_elements
46
- [:postcode, :postcode_inward, :postcode_outward, :post_town, :dependant_locality,
47
- :double_dependant_locality, :thoroughfare, :dependant_thoroughfare,
48
- :building_number, :building_name, :sub_building_name, :po_box, :department_name,
49
- :organisation_name, :udprn, :postcode_type, :su_organisation_indicator,
50
- :delivery_point_suffix, :line_1, :line_2, :line_3, :premise, :county,
51
- :district, :ward, :longitude, :latitude, :eastings, :northings]
42
+ %i[
43
+ postcode
44
+ postcode_inward
45
+ postcode_outward
46
+ post_town
47
+ dependant_locality
48
+ double_dependant_locality
49
+ thoroughfare
50
+ dependant_thoroughfare
51
+ building_number
52
+ building_name
53
+ sub_building_name
54
+ po_box
55
+ department_name
56
+ organisation_name
57
+ udprn
58
+ postcode_type
59
+ su_organisation_indicator
60
+ delivery_point_suffix
61
+ line_1
62
+ line_2
63
+ line_3
64
+ premise
65
+ county
66
+ district
67
+ ward
68
+ longitude
69
+ latitude
70
+ eastings
71
+ northings
72
+ ]
52
73
  end
53
74
 
54
75
  def is_address(address)
55
- contains_attributes address_elements, address
76
+ contains_attributes address_elements, address
56
77
  end
57
78
 
58
79
  def key_elements
59
- [:lookups_remaining, :daily_limit, :individual_limit, :allowed_urls, :notifications]
80
+ %i[lookups_remaining daily_limit individual_limit allowed_urls notifications]
60
81
  end
61
82
 
62
83
  def is_key(key)
63
- contains_attributes key_elements, key
84
+ contains_attributes key_elements, key
64
85
  end
65
86
 
66
87
  def secret_key
67
- "uk_hxp6ouk0rmyXoobVJnehrsQcdvTfb"
68
- end
88
+ 'uk_hxp6ouk0rmyXoobVJnehrsQcdvTfb'
89
+ end
@@ -1,42 +1,42 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/addresses/0?api_key=foo
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 401
19
- message: Unauthorized
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '135'
27
- Etag:
28
- - '"-632160061"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:26 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "code": 4010,
38
- "message": "Invalid Key. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4010"
39
- }
40
- http_version:
41
- recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/addresses/0?api_key=foo
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 401
19
+ message: Unauthorized
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "135"
27
+ Etag:
28
+ - '"-632160061"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:26 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "code": 4010,
38
+ "message": "Invalid Key. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4010"
39
+ }
40
+ http_version:
41
+ recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
42
42
  recorded_with: VCR 2.9.3
@@ -1,42 +1,42 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/addresses/-3?api_key=gandhi
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 402
19
- message: Payment Required
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '144'
27
- Etag:
28
- - '"1445167850"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:26 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "code": 4021,
38
- "message": "Lookup Limit Reached. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4021"
39
- }
40
- http_version:
41
- recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/addresses/-3?api_key=gandhi
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 402
19
+ message: Payment Required
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "144"
27
+ Etag:
28
+ - '"1445167850"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:26 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "code": 4021,
38
+ "message": "Lookup Limit Reached. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4021"
39
+ }
40
+ http_version:
41
+ recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
42
42
  recorded_with: VCR 2.9.3
@@ -1,42 +1,42 @@
1
1
  ---
2
2
  http_interactions:
3
- - request:
4
- method: get
5
- uri: https://localhost:1337/v1/addresses/-2?api_key=gandhi
6
- body:
7
- encoding: US-ASCII
8
- string: ''
9
- headers:
10
- Accept:
11
- - '*/*; q=0.5, application/xml'
12
- Accept-Encoding:
13
- - gzip, deflate
14
- User-Agent:
15
- - Ruby
16
- response:
17
- status:
18
- code: 402
19
- message: Payment Required
20
- headers:
21
- Access-Control-Allow-Origin:
22
- - '*'
23
- Content-Type:
24
- - application/json; charset=utf-8
25
- Content-Length:
26
- - '146'
27
- Etag:
28
- - '"1304241290"'
29
- Date:
30
- - Fri, 12 Dec 2014 17:40:26 GMT
31
- Connection:
32
- - keep-alive
33
- body:
34
- encoding: UTF-8
35
- string: |-
36
- {
37
- "code": 4020,
38
- "message": "Token balance depleted. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4020"
39
- }
40
- http_version:
41
- recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
3
+ - request:
4
+ method: get
5
+ uri: https://localhost:1337/v1/addresses/-2?api_key=gandhi
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ""
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
18
+ code: 402
19
+ message: Payment Required
20
+ headers:
21
+ Access-Control-Allow-Origin:
22
+ - "*"
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - "146"
27
+ Etag:
28
+ - '"1304241290"'
29
+ Date:
30
+ - Fri, 12 Dec 2014 17:40:26 GMT
31
+ Connection:
32
+ - keep-alive
33
+ body:
34
+ encoding: UTF-8
35
+ string: |-
36
+ {
37
+ "code": 4020,
38
+ "message": "Token balance depleted. For more information see http://ideal-postcodes.co.uk/documentation/response-codes#4020"
39
+ }
40
+ http_version:
41
+ recorded_at: Fri, 12 Dec 2014 17:40:26 GMT
42
42
  recorded_with: VCR 2.9.3