courtfinder-client 0.0.5 → 0.0.6

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: 1a7e85dc749f0a24f743133e3979106210a2072c
4
- data.tar.gz: 2926fb38d1ae02c82c1a05d2d4fbb12d2992dc10
3
+ metadata.gz: beae704d76c8fc0cac9c0dded79a61c1d85bb433
4
+ data.tar.gz: bb59fc51957b6139b3f8db4fdc86cb1c62a56785
5
5
  SHA512:
6
- metadata.gz: 60153c6b3250246da648703af8008e7180dcf6af8177ccb5b44a1623c76fc189b04c2bb53e1f7772ec68dd9d456e909702e1d058db43ec3530c177f852a467a8
7
- data.tar.gz: 2ef7328a308131057df03042b8eae5832e58b7a7477e92dd61a55195f7dd10549280d851d0766c473c3cc768e029aa7a5a71dabfbe7d47a72739088af0b650e1
6
+ metadata.gz: 3e5e61da5175c86d809fdf93b0cc56551c11212264024680f2771dd33355d63fc02b52c44f1637a5d16b5ed7d8a5cd9cf27f0d3f0661f7329150917e40c48597
7
+ data.tar.gz: 647038b4c6a06bc6432735ea0cbe5c44d8ca39c9351f4e6eee08a390c7b40c64f7206bf4b2058ac59c2871be7b1ad6fbcadf7d3c678b6384f93af7c15b9d8d61
@@ -4,23 +4,24 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'courtfinder/client/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "courtfinder-client"
7
+ spec.name = 'courtfinder-client'
8
8
  spec.version = Courtfinder::Client::VERSION
9
- spec.authors = ["Aleksandar Simić"]
10
- spec.email = ["alex.simic@digital.justice.gov.uk"]
9
+ spec.authors = ['Aleksandar Simić']
10
+ spec.email = ['alex.simic@digital.justice.gov.uk']
11
11
  spec.summary = %q{Courtfinder client gem}
12
12
  spec.description = %q{https://courttribunalfinder.service.gov.uk/ API client}
13
- spec.homepage = "https://github.com/ministryofjustice/courtfinder-client"
14
- spec.license = "MIT"
13
+ spec.homepage = 'https://github.com/ministryofjustice/courtfinder-client'
14
+ spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.6"
22
- spec.add_development_dependency "rake", "~> 10.3"
23
- spec.add_development_dependency "rspec", "~> 3.1"
24
- spec.add_development_dependency "webmock", "~> 1.18"
25
- spec.add_development_dependency "faraday", "~> 0.9"
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+ spec.add_development_dependency 'rake', '~> 10.3'
23
+ spec.add_development_dependency 'rspec', '~> 3.1'
24
+ spec.add_development_dependency 'excon', '~> 0.41'
25
+ spec.add_development_dependency 'vcr', '~> 2.9'
26
+ spec.add_development_dependency 'webmock', '~> 1.20'
26
27
  end
@@ -1,23 +1,24 @@
1
1
  require 'courtfinder/client/version'
2
- require 'faraday'
2
+ require 'excon'
3
3
  require 'json'
4
4
  require 'uri'
5
5
 
6
6
  module Courtfinder
7
- SERVER = 'https://courttribunalfinder.service.gov.uk/'
7
+ SERVER = 'https://courttribunalfinder.service.gov.uk'
8
8
  module Client
9
9
  class HousingPossession
10
- PATH='/search/results.json?area_of_law=Housing+possession&postcode='
11
-
10
+ PATH='/search/results.json?aol=Housing+possession&postcode='
12
11
  def get postcode
13
12
  conn = nil
14
13
  begin
15
14
  endpoint = "#{Courtfinder::SERVER}#{PATH}#{URI.escape(postcode)}"
16
- Timeout::timeout(1.5) { conn = Faraday.get endpoint }
17
- process conn.body
18
- rescue Faraday::TimeoutError
19
- []
15
+ conn = Excon.get(endpoint, :read_timeout => 90)
16
+ check_for_error_code conn
17
+ rescue Excon::Errors::RequestTimeout
18
+ @json = { error: 'timeout' }
20
19
  end
20
+
21
+ @json
21
22
  end
22
23
 
23
24
  def empty?
@@ -26,16 +27,27 @@ module Courtfinder
26
27
 
27
28
  private
28
29
 
30
+ def check_for_error_code response
31
+ process response.body if response.status == 200
32
+ @json = { error: 'timeout' } if response.status == 400
33
+ @json = { error: "postcode couldn't be found" } if response.status == 500
34
+ end
35
+
29
36
  def process data
30
37
  begin
31
- @json = JSON.parse data
32
- unwanted_attributes = ['areas_of_law', 'slug', 'dx_number',
33
- 'lon', 'lat', 'types', 'number']
34
- @json.each do |court|
35
- unwanted_attributes.each {|attr| court.delete attr }
36
- end
38
+ parsed = JSON.parse data
39
+ @json = (parsed.size > 1) ? [parsed[0]] : parsed
40
+ cleanup_court_data
37
41
  rescue JSON::ParserError
38
- @json = []
42
+ @json = { error: 'invalid JSON returned' }
43
+ end
44
+ end
45
+
46
+ def cleanup_court_data
47
+ unwanted_attributes = ['areas_of_law', 'slug', 'dx_number',
48
+ 'lon', 'lat', 'types', 'number', 'distance']
49
+ @json.each do |court|
50
+ unwanted_attributes.each {|attr| court.delete attr }
39
51
  end
40
52
  end
41
53
  end
@@ -1,5 +1,5 @@
1
1
  module Courtfinder
2
2
  module Client
3
- VERSION = "0.0.5"
3
+ VERSION = '0.0.6'
4
4
  end
5
5
  end
@@ -1,10 +1,6 @@
1
- require 'webmock/rspec'
2
- require_relative 'support/helper'
3
1
  require 'courtfinder/client'
4
2
 
5
3
  describe Courtfinder::Client::HousingPossession do
6
- before { WebMock.disable_net_connect! }
7
-
8
4
  let(:result) do
9
5
  [{ "name" => "Cambridge County Court and Family Court",
10
6
  "address" =>
@@ -18,104 +14,45 @@ describe Courtfinder::Client::HousingPossession do
18
14
  }
19
15
  }]
20
16
  end
17
+
21
18
  let(:client) { Courtfinder::Client::HousingPossession.new }
22
19
 
23
20
  def full_url postcode
24
21
  "#{Courtfinder::SERVER}#{Courtfinder::Client::HousingPossession::PATH}#{postcode}"
25
22
  end
26
23
 
27
- def stub_with postcode
28
- stub_request(:get, full_url(postcode))
29
- .to_return(:body => fixture('result.json'),
30
- :headers => {:content_type => 'application/json; charset=utf-8'})
31
- end
32
-
33
- def blank_result postcode
34
- stub_request(:get, full_url(postcode))
35
- .to_return(:status => 200,
36
- :body => '[]',
37
- :headers => {})
38
- end
39
-
40
- def error_result postcode
41
- stub_request(:get, full_url(postcode))
42
- .to_return(:status => 404,
43
- :body => '',
44
- :headers => {})
45
- end
46
-
47
24
  describe '.get' do
48
25
  context 'with valid postcode' do
49
26
  context 'when given postcode with no spaces' do
50
27
  let(:postcode) { 'sg80lt' }
51
- before { stub_with postcode }
52
28
 
53
- it 'should return the court address' do
54
- expect(client.get(postcode)).to eql result
29
+ it 'should return the court address', :vcr do
30
+ expect(client.get(postcode)).to match result
55
31
  end
56
32
  end
57
33
 
58
34
  context 'when given postcode with spaces' do
59
35
  let(:postcode) { 'SG8 0LT' }
60
- before { stub_with postcode }
61
36
 
62
- it 'should return the court address' do
37
+ it 'should return the court address', :vcr do
63
38
  expect(client.get(postcode)).to eql result
64
39
  end
65
40
  end
66
-
67
- context 'when a timeout occurs' do
68
- let(:postcode) { 'SG8 0LT' }
69
- before do
70
- stub_request(:get, full_url(postcode))
71
- .to_raise(Timeout::Error)
72
- end
73
-
74
- it 'should return a blank array' do
75
- expect(client.get(full_url(postcode))).to eql []
76
- end
77
- end
78
41
  end
79
42
 
80
- context 'when invalid postcode is provided' do
81
- it 'should return a blank array' do
82
- postcode = 'fake'
83
- blank_result postcode
84
- expect(client.get(postcode)).to eql []
85
- end
86
-
87
- it 'should not raise an error' do
88
- postcode = 'break'
89
- error_result postcode
90
- expect { client.get(postcode) }.not_to raise_error
91
- end
92
- end
93
- end
94
-
95
- describe '.empty?' do
96
- context 'when there are results returned' do
97
- let(:postcode) { 'SG8 0LT' }
98
-
99
- before do
100
- stub_with postcode
101
- client.get postcode
102
- end
43
+ context 'with invalid postcode' do
44
+ let(:postcode) { 'fake' }
103
45
 
104
- it 'should be false' do
105
- expect(client.empty?).to be false
46
+ it 'should return empty array', :vcr do
47
+ expect(client.get(postcode)).to match({ :error => "postcode couldn't be found" })
106
48
  end
107
49
  end
108
50
 
109
- context 'when there are no results returned' do
110
- let(:postcode) { 'fake' }
111
-
112
- before do
113
- blank_result postcode
114
- client.get postcode
115
- end
51
+ context 'when a timeout happens' do
52
+ let(:postcode) { 'SW1H9AJ' }
116
53
 
117
- it 'should be true' do
118
- expect(client.empty?).to be true
54
+ it 'should return an error', :vcr do
55
+ expect(client.get(postcode)).to match({ :error => 'timeout' })
119
56
  end
120
57
  end
121
58
  end
@@ -1,89 +1,29 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # The generated `.rspec` file contains `--require spec_helper` which will cause this
4
- # file to always be loaded, without a need to explicitly require it in any files.
5
- #
6
- # Given that it is always loaded, you are encouraged to keep this file as
7
- # light-weight as possible. Requiring heavyweight dependencies from this file
8
- # will add to the boot time of your test suite on EVERY test run, even for an
9
- # individual file that may not need all of that loaded. Instead, consider making
10
- # a separate helper file that requires the additional dependencies and performs
11
- # the additional setup, and require it from the spec files that actually need it.
12
- #
13
- # The `.rspec` file also contains a few flags that are not defaults but that
14
- # users commonly want.
15
- #
16
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
1
+ require 'webmock'
2
+ require 'webmock/rspec'
3
+ require 'vcr'
4
+ require_relative 'support/helper'
5
+ require 'courtfinder/client'
6
+
7
+
17
8
  RSpec.configure do |config|
18
- # rspec-expectations config goes here. You can use an alternate
19
- # assertion/expectation library such as wrong or the stdlib/minitest
20
- # assertions if you prefer.
21
9
  config.expect_with :rspec do |expectations|
22
- # This option will default to `true` in RSpec 4. It makes the `description`
23
- # and `failure_message` of custom matchers include text for helper methods
24
- # defined using `chain`, e.g.:
25
- # be_bigger_than(2).and_smaller_than(4).description
26
- # # => "be bigger than 2 and smaller than 4"
27
- # ...rather than:
28
- # # => "be bigger than 2"
29
10
  expectations.include_chain_clauses_in_custom_matcher_descriptions = true
30
11
  end
31
12
 
32
- # rspec-mocks config goes here. You can use an alternate test double
33
- # library (such as bogus or mocha) by changing the `mock_with` option here.
34
13
  config.mock_with :rspec do |mocks|
35
- # Prevents you from mocking or stubbing a method that does not exist on
36
- # a real object. This is generally recommended, and will default to
37
- # `true` in RSpec 4.
38
14
  mocks.verify_partial_doubles = true
39
15
  end
40
16
 
41
- # The settings below are suggested to provide a good initial experience
42
- # with RSpec, but feel free to customize to your heart's content.
43
- =begin
44
- # These two settings work together to allow you to limit a spec run
45
- # to individual examples or groups you care about by tagging them with
46
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
47
- # get run.
48
- config.filter_run :focus
49
- config.run_all_when_everything_filtered = true
50
-
51
- # Limits the available syntax to the non-monkey patched syntax that is recommended.
52
- # For more details, see:
53
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
54
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
55
- # - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3#new__config_option_to_disable_rspeccore_monkey_patching
56
- config.disable_monkey_patching!
57
-
58
- # This setting enables warnings. It's recommended, but in some cases may
59
- # be too noisy due to issues in dependencies.
60
- config.warnings = true
61
-
62
- # Many RSpec users commonly either run the entire suite or an individual
63
- # file, and it's useful to allow more verbose output when running an
64
- # individual spec file.
65
- if config.files_to_run.one?
66
- # Use the documentation formatter for detailed output,
67
- # unless a formatter has already been configured
68
- # (e.g. via a command-line flag).
69
- config.default_formatter = 'doc'
17
+ VCR.configure do |config|
18
+ config.default_cassette_options = { :record => :new_episodes }
19
+ config.configure_rspec_metadata!
20
+ config.cassette_library_dir = 'spec/vcr'
21
+ config.allow_http_connections_when_no_cassette = true
22
+ config.hook_into :excon
23
+ config.before_http_request do |request|
24
+ if request.uri == "#{Courtfinder::SERVER}#{Courtfinder::Client::HousingPossession::PATH}SW1H9AJ"
25
+ raise Excon::Errors::RequestTimeout.new('Boom')
26
+ end
27
+ end
70
28
  end
71
-
72
- # Print the 10 slowest examples and example groups at the
73
- # end of the spec run, to help surface which specs are running
74
- # particularly slow.
75
- config.profile_examples = 10
76
-
77
- # Run specs in random order to surface order dependencies. If you find an
78
- # order dependency and want to debug it, you can fix the order by providing
79
- # the seed, which is printed after each run.
80
- # --seed 1234
81
- config.order = :random
82
-
83
- # Seed global randomization in this process using the `--seed` CLI option.
84
- # Setting this allows you to use `--seed` to deterministically reproduce
85
- # test failures related to randomization by passing the same `--seed` value
86
- # as the one that triggered the failure.
87
- Kernel.srand config.seed
88
- =end
89
29
  end
@@ -0,0 +1,42 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://courttribunalfinder.service.gov.uk/search/results.json?aol=Housing+possession&postcode=fake
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.41.0
12
+ response:
13
+ status:
14
+ code: 500
15
+ message:
16
+ headers:
17
+ Server:
18
+ - nginx/1.4.6
19
+ Date:
20
+ - Mon, 24 Nov 2014 12:17:54 GMT
21
+ Content-Type:
22
+ - application/json
23
+ Content-Length:
24
+ - '94'
25
+ Connection:
26
+ - keep-alive
27
+ X-Frame-Options:
28
+ - SAMEORIGIN
29
+ Accept-Ranges:
30
+ - bytes
31
+ X-Varnish:
32
+ - '697574197'
33
+ Age:
34
+ - '0'
35
+ Via:
36
+ - 1.1 varnish
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{"error":"MapIt doesn''t know this postcode: http://mapit.mysociety.org/postcode/partial/fake"}'
40
+ http_version:
41
+ recorded_at: Mon, 24 Nov 2014 12:17:54 GMT
42
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,117 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://courttribunalfinder.service.gov.uk/search/results.json?aol=Housing+possession&postcode=sg80lt
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.41.0
12
+ response:
13
+ status:
14
+ code: 200
15
+ message:
16
+ headers:
17
+ Server:
18
+ - nginx/1.4.6
19
+ Date:
20
+ - Mon, 24 Nov 2014 12:17:53 GMT
21
+ Content-Type:
22
+ - application/json
23
+ Content-Length:
24
+ - '5941'
25
+ Connection:
26
+ - keep-alive
27
+ Vary:
28
+ - Accept-Encoding
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ Accept-Ranges:
32
+ - bytes
33
+ X-Varnish:
34
+ - '697574194'
35
+ Age:
36
+ - '0'
37
+ Via:
38
+ - 1.1 varnish
39
+ body:
40
+ encoding: UTF-8
41
+ string: '[{"distance": 14.32, "name": "Cambridge County Court and Family Court",
42
+ "address": {"town": "Cambridge", "address_lines": ["Cambridge County Court
43
+ and Family Court Hearing Centre", "197 East Road"], "type": "Postal", "postcode":
44
+ "CB1 1BA", "county": "Cambridgeshire"}, "lat": 52.2037125926829, "dx_number":
45
+ "97650 Cambridge 3", "areas_of_law": ["Forced marriage", "Adoption", "Money
46
+ claims", "Domestic violence", "Children", "Housing possession", "High court",
47
+ "Bankruptcy", "Divorce"], "lon": 0.132065389149123, "number": 162, "types":
48
+ ["Family court", "County Court"], "slug": "cambridge-county-court-and-family-court"},
49
+ {"distance": 15.49, "name": "Bedford County Court and Family Court", "address":
50
+ {"town": "Bedford", "address_lines": ["Bedford County Court and Family Court
51
+ Hearing Centre", "P.O. Box 1405", "3 St Paul''s Square"], "type": "Postal",
52
+ "postcode": "MK40 9DN", "county": "Bedfordshire"}, "lat": 52.1350290338706,
53
+ "dx_number": "97590 Bedford 3", "areas_of_law": ["Children", "Divorce", "Domestic
54
+ violence", "Bankruptcy", "High court", "Money claims", "Housing possession"],
55
+ "lon": -0.467880322006416, "number": 124, "types": ["County Court", "Family
56
+ court"], "slug": "bedford-county-court-and-family-court"}, {"distance": 18.02,
57
+ "name": "Luton County Court and Family Court", "address": {"town": "Luton",
58
+ "address_lines": ["Luton County Court and Family Court Hearing Centre", "2nd
59
+ Floor", "Cresta House", "Alma Street"], "type": "Postal", "postcode": "LU1
60
+ 2PU", "county": "Bedfordshire"}, "lat": 51.8811279872015, "dx_number": "97760
61
+ Luton 4", "areas_of_law": ["Money claims", "Domestic violence", "Housing possession",
62
+ "Forced marriage", "Adoption", "Bankruptcy", "High court", "Divorce", "Children"],
63
+ "lon": -0.418919711521327, "number": 258, "types": ["Family court", "County
64
+ Court"], "slug": "luton-county-court-and-family-court"}, {"distance": 18.75,
65
+ "name": "Hertford County Court and Family Court", "address": {"town": "Hertford",
66
+ "address_lines": ["Hertford County Court and Family Hearing Centre", "P.O.Box
67
+ 373"], "type": "Postal", "postcode": "SG13 9HT", "county": "Hertfordshire"},
68
+ "lat": 51.796089552427, "dx_number": "97710 Hertford 2", "areas_of_law": ["Children",
69
+ "Divorce", "Forced marriage", "Domestic violence", "Bankruptcy", "Money claims",
70
+ "Housing possession", "Adoption"], "lon": -0.0765909721207512, "number": 221,
71
+ "types": ["County Court", "Family court"], "slug": "hertford-county-court-and-family-court"},
72
+ {"distance": 23.59, "name": "St Albans County Court", "address": {"town":
73
+ "St. Albans", "address_lines": ["St Albans County Court", "The Court Building",
74
+ "Bricket Road"], "type": "Postal", "postcode": "AL1 3JW", "county": "Hertfordshire"},
75
+ "lat": 51.7516188860504, "dx_number": "97770 St Albans 2", "areas_of_law":
76
+ ["Bankruptcy", "Money claims", "Housing possession"], "lon": -0.335521986503323,
77
+ "number": 313, "types": ["County Court"], "slug": "st-albans-county-court"},
78
+ {"distance": 27.45, "name": "Milton Keynes County Court and Family Court",
79
+ "address": {"town": "Central Milton Keynes", "address_lines": ["Milton Keynes
80
+ County Court and Family Court Hearing Centre", "351 Silbury Boulevard", "Witan
81
+ Gate East"], "type": "Postal", "postcode": "MK9 2DT", "county": "Buckinghamshire"},
82
+ "lat": 52.0412079044384, "dx_number": "136266 Milton Keynes 6", "areas_of_law":
83
+ ["Forced marriage", "Money claims", "Divorce", "Domestic violence", "Children",
84
+ "Adoption", "Housing possession", "Bankruptcy", "High court"], "lon": -0.765354379292703,
85
+ "number": 388, "types": ["County Court", "Family court"], "slug": "milton-keynes-county-court-and-family-court"},
86
+ {"distance": 30.24, "name": "Watford County Court and Family Court", "address":
87
+ {"town": "Watford", "address_lines": ["Watford County Court and Family Court
88
+ Hearing Centre", "3rd Floor", "Cassiobury House", "11-19 Station Road"], "type":
89
+ "Postal", "postcode": "WD17 1EZ", "county": "Hertfordshire"}, "lat": 51.663675400498,
90
+ "dx_number": "122740 Watford 5 ", "areas_of_law": ["Children", "Divorce",
91
+ "Forced marriage", "Domestic violence", "Money claims", "Housing possession",
92
+ "Adoption"], "lon": -0.398796389317627, "number": 362, "types": ["County Court",
93
+ "Family court"], "slug": "watford-county-court-and-family-court"}, {"distance":
94
+ 31.55, "name": "Edmonton County Court and Family Court", "address": {"town":
95
+ "Edmonton", "address_lines": ["Hearing Centre", "Court House", "59 Fore Street"],
96
+ "type": "Postal", "postcode": "N18 2TN", "county": "London"}, "lat": 51.6107379724959,
97
+ "dx_number": "136686 Edmonton 3", "areas_of_law": ["Children", "Divorce",
98
+ "Domestic violence", "Money claims", "Housing possession"], "lon": -0.0660789741569261,
99
+ "number": 194, "types": ["County Court", "Family court"], "slug": "edmonton-county-court-and-family-court"},
100
+ {"distance": 32.34, "name": "Barnet Civil and Family Courts Centre", "address":
101
+ {"town": "London", "address_lines": ["Hearing Centre", "St Marys Court", "Regents
102
+ Park Road", "Finchley Central"], "type": "Postal", "postcode": "N3 1BQ", "county":
103
+ "London"}, "lat": 51.6004367904275, "dx_number": "122570 Finchley (Church
104
+ End)", "areas_of_law": ["Children", "Divorce", "Domestic violence", "Money
105
+ claims", "Housing possession", "Adoption"], "lon": -0.195606730619243, "number":
106
+ 117, "types": ["Family court", "County Court"], "slug": "barnet-civil-and-family-courts-centre"},
107
+ {"distance": 34.19, "name": "Aylesbury County Court and Family Court", "address":
108
+ {"town": "Aylesbury", "address_lines": ["Aylesbury County Court and Family
109
+ Court Hearing Centre", "Walton Street"], "type": "Postal", "postcode": "HP21
110
+ 7QZ", "county": "Buckinghamshire"}, "lat": 51.8107805904416, "dx_number":
111
+ "97820 Aylesbury 10", "areas_of_law": ["Children", "Divorce", "Forced marriage",
112
+ "Domestic violence", "Bankruptcy", "Money claims", "Housing possession", "Adoption"],
113
+ "lon": -0.808170859422031, "number": 113, "types": ["County Court", "Family
114
+ court"], "slug": "aylesbury-county-court-and-family-court"}]'
115
+ http_version:
116
+ recorded_at: Mon, 24 Nov 2014 12:17:53 GMT
117
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,117 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://courttribunalfinder.service.gov.uk/search/results.json?aol=Housing+possession&postcode=SG8%200LT
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - excon/0.41.0
12
+ response:
13
+ status:
14
+ code: 200
15
+ message:
16
+ headers:
17
+ Server:
18
+ - nginx/1.4.6
19
+ Date:
20
+ - Mon, 24 Nov 2014 12:17:54 GMT
21
+ Content-Type:
22
+ - application/json
23
+ Content-Length:
24
+ - '5941'
25
+ Connection:
26
+ - keep-alive
27
+ Vary:
28
+ - Accept-Encoding
29
+ X-Frame-Options:
30
+ - SAMEORIGIN
31
+ Accept-Ranges:
32
+ - bytes
33
+ X-Varnish:
34
+ - '697574195'
35
+ Age:
36
+ - '0'
37
+ Via:
38
+ - 1.1 varnish
39
+ body:
40
+ encoding: UTF-8
41
+ string: '[{"distance": 14.32, "name": "Cambridge County Court and Family Court",
42
+ "address": {"town": "Cambridge", "address_lines": ["Cambridge County Court
43
+ and Family Court Hearing Centre", "197 East Road"], "type": "Postal", "postcode":
44
+ "CB1 1BA", "county": "Cambridgeshire"}, "lat": 52.2037125926829, "dx_number":
45
+ "97650 Cambridge 3", "areas_of_law": ["Forced marriage", "Adoption", "Money
46
+ claims", "Domestic violence", "Children", "Housing possession", "High court",
47
+ "Bankruptcy", "Divorce"], "lon": 0.132065389149123, "number": 162, "types":
48
+ ["Family court", "County Court"], "slug": "cambridge-county-court-and-family-court"},
49
+ {"distance": 15.49, "name": "Bedford County Court and Family Court", "address":
50
+ {"town": "Bedford", "address_lines": ["Bedford County Court and Family Court
51
+ Hearing Centre", "P.O. Box 1405", "3 St Paul''s Square"], "type": "Postal",
52
+ "postcode": "MK40 9DN", "county": "Bedfordshire"}, "lat": 52.1350290338706,
53
+ "dx_number": "97590 Bedford 3", "areas_of_law": ["Children", "Divorce", "Domestic
54
+ violence", "Bankruptcy", "High court", "Money claims", "Housing possession"],
55
+ "lon": -0.467880322006416, "number": 124, "types": ["County Court", "Family
56
+ court"], "slug": "bedford-county-court-and-family-court"}, {"distance": 18.02,
57
+ "name": "Luton County Court and Family Court", "address": {"town": "Luton",
58
+ "address_lines": ["Luton County Court and Family Court Hearing Centre", "2nd
59
+ Floor", "Cresta House", "Alma Street"], "type": "Postal", "postcode": "LU1
60
+ 2PU", "county": "Bedfordshire"}, "lat": 51.8811279872015, "dx_number": "97760
61
+ Luton 4", "areas_of_law": ["Money claims", "Domestic violence", "Housing possession",
62
+ "Forced marriage", "Adoption", "Bankruptcy", "High court", "Divorce", "Children"],
63
+ "lon": -0.418919711521327, "number": 258, "types": ["Family court", "County
64
+ Court"], "slug": "luton-county-court-and-family-court"}, {"distance": 18.75,
65
+ "name": "Hertford County Court and Family Court", "address": {"town": "Hertford",
66
+ "address_lines": ["Hertford County Court and Family Hearing Centre", "P.O.Box
67
+ 373"], "type": "Postal", "postcode": "SG13 9HT", "county": "Hertfordshire"},
68
+ "lat": 51.796089552427, "dx_number": "97710 Hertford 2", "areas_of_law": ["Children",
69
+ "Divorce", "Forced marriage", "Domestic violence", "Bankruptcy", "Money claims",
70
+ "Housing possession", "Adoption"], "lon": -0.0765909721207512, "number": 221,
71
+ "types": ["County Court", "Family court"], "slug": "hertford-county-court-and-family-court"},
72
+ {"distance": 23.59, "name": "St Albans County Court", "address": {"town":
73
+ "St. Albans", "address_lines": ["St Albans County Court", "The Court Building",
74
+ "Bricket Road"], "type": "Postal", "postcode": "AL1 3JW", "county": "Hertfordshire"},
75
+ "lat": 51.7516188860504, "dx_number": "97770 St Albans 2", "areas_of_law":
76
+ ["Bankruptcy", "Money claims", "Housing possession"], "lon": -0.335521986503323,
77
+ "number": 313, "types": ["County Court"], "slug": "st-albans-county-court"},
78
+ {"distance": 27.45, "name": "Milton Keynes County Court and Family Court",
79
+ "address": {"town": "Central Milton Keynes", "address_lines": ["Milton Keynes
80
+ County Court and Family Court Hearing Centre", "351 Silbury Boulevard", "Witan
81
+ Gate East"], "type": "Postal", "postcode": "MK9 2DT", "county": "Buckinghamshire"},
82
+ "lat": 52.0412079044384, "dx_number": "136266 Milton Keynes 6", "areas_of_law":
83
+ ["Forced marriage", "Money claims", "Divorce", "Domestic violence", "Children",
84
+ "Adoption", "Housing possession", "Bankruptcy", "High court"], "lon": -0.765354379292703,
85
+ "number": 388, "types": ["County Court", "Family court"], "slug": "milton-keynes-county-court-and-family-court"},
86
+ {"distance": 30.24, "name": "Watford County Court and Family Court", "address":
87
+ {"town": "Watford", "address_lines": ["Watford County Court and Family Court
88
+ Hearing Centre", "3rd Floor", "Cassiobury House", "11-19 Station Road"], "type":
89
+ "Postal", "postcode": "WD17 1EZ", "county": "Hertfordshire"}, "lat": 51.663675400498,
90
+ "dx_number": "122740 Watford 5 ", "areas_of_law": ["Children", "Divorce",
91
+ "Forced marriage", "Domestic violence", "Money claims", "Housing possession",
92
+ "Adoption"], "lon": -0.398796389317627, "number": 362, "types": ["County Court",
93
+ "Family court"], "slug": "watford-county-court-and-family-court"}, {"distance":
94
+ 31.55, "name": "Edmonton County Court and Family Court", "address": {"town":
95
+ "Edmonton", "address_lines": ["Hearing Centre", "Court House", "59 Fore Street"],
96
+ "type": "Postal", "postcode": "N18 2TN", "county": "London"}, "lat": 51.6107379724959,
97
+ "dx_number": "136686 Edmonton 3", "areas_of_law": ["Children", "Divorce",
98
+ "Domestic violence", "Money claims", "Housing possession"], "lon": -0.0660789741569261,
99
+ "number": 194, "types": ["County Court", "Family court"], "slug": "edmonton-county-court-and-family-court"},
100
+ {"distance": 32.34, "name": "Barnet Civil and Family Courts Centre", "address":
101
+ {"town": "London", "address_lines": ["Hearing Centre", "St Marys Court", "Regents
102
+ Park Road", "Finchley Central"], "type": "Postal", "postcode": "N3 1BQ", "county":
103
+ "London"}, "lat": 51.6004367904275, "dx_number": "122570 Finchley (Church
104
+ End)", "areas_of_law": ["Children", "Divorce", "Domestic violence", "Money
105
+ claims", "Housing possession", "Adoption"], "lon": -0.195606730619243, "number":
106
+ 117, "types": ["Family court", "County Court"], "slug": "barnet-civil-and-family-courts-centre"},
107
+ {"distance": 34.19, "name": "Aylesbury County Court and Family Court", "address":
108
+ {"town": "Aylesbury", "address_lines": ["Aylesbury County Court and Family
109
+ Court Hearing Centre", "Walton Street"], "type": "Postal", "postcode": "HP21
110
+ 7QZ", "county": "Buckinghamshire"}, "lat": 51.8107805904416, "dx_number":
111
+ "97820 Aylesbury 10", "areas_of_law": ["Children", "Divorce", "Forced marriage",
112
+ "Domestic violence", "Bankruptcy", "Money claims", "Housing possession", "Adoption"],
113
+ "lon": -0.808170859422031, "number": 113, "types": ["County Court", "Family
114
+ court"], "slug": "aylesbury-county-court-and-family-court"}]'
115
+ http_version:
116
+ recorded_at: Mon, 24 Nov 2014 12:17:54 GMT
117
+ recorded_with: VCR 2.9.3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: courtfinder-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksandar Simić
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-05 00:00:00.000000000 Z
11
+ date: 2014-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -53,33 +53,47 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.1'
55
55
  - !ruby/object:Gem::Dependency
56
- name: webmock
56
+ name: excon
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.18'
61
+ version: '0.41'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.18'
68
+ version: '0.41'
69
69
  - !ruby/object:Gem::Dependency
70
- name: faraday
70
+ name: vcr
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.9'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.9'
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
87
  - - "~>"
74
88
  - !ruby/object:Gem::Version
75
- version: '0.9'
89
+ version: '1.20'
76
90
  type: :development
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - "~>"
81
95
  - !ruby/object:Gem::Version
82
- version: '0.9'
96
+ version: '1.20'
83
97
  description: https://courttribunalfinder.service.gov.uk/ API client
84
98
  email:
85
99
  - alex.simic@digital.justice.gov.uk
@@ -100,6 +114,9 @@ files:
100
114
  - spec/spec_helper.rb
101
115
  - spec/support/helper.rb
102
116
  - spec/support/result.json
117
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_invalid_postcode/should_return_empty_array.yml
118
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_valid_postcode/when_given_postcode_with_no_spaces/should_return_the_court_address.yml
119
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_valid_postcode/when_given_postcode_with_spaces/should_return_the_court_address.yml
103
120
  homepage: https://github.com/ministryofjustice/courtfinder-client
104
121
  licenses:
105
122
  - MIT
@@ -129,3 +146,6 @@ test_files:
129
146
  - spec/spec_helper.rb
130
147
  - spec/support/helper.rb
131
148
  - spec/support/result.json
149
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_invalid_postcode/should_return_empty_array.yml
150
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_valid_postcode/when_given_postcode_with_no_spaces/should_return_the_court_address.yml
151
+ - spec/vcr/Courtfinder_Client_HousingPossession/_get/with_valid_postcode/when_given_postcode_with_spaces/should_return_the_court_address.yml