ideal_postcodes 2.0.0 → 2.0.1

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