gds-api-adapters 4.5.0 → 4.6.0
Sign up to get free protection for your applications and to get access to all the features.
data/lib/gds_api/content_api.rb
CHANGED
@@ -94,7 +94,7 @@ class GdsApi::ContentApi < GdsApi::Base
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def countries
|
97
|
-
get_json!("#{base_url}/travel-advice.json")
|
97
|
+
parse_times(get_json!("#{base_url}/travel-advice.json"))
|
98
98
|
end
|
99
99
|
|
100
100
|
private
|
@@ -112,4 +112,13 @@ class GdsApi::ContentApi < GdsApi::Base
|
|
112
112
|
batch_response
|
113
113
|
end
|
114
114
|
end
|
115
|
+
|
116
|
+
def parse_times(response)
|
117
|
+
response["results"].map do |result|
|
118
|
+
if result.has_key?("updated_at")
|
119
|
+
result["updated_at"] = Time.parse(result["updated_at"])
|
120
|
+
end
|
121
|
+
end
|
122
|
+
response
|
123
|
+
end
|
115
124
|
end
|
@@ -302,13 +302,14 @@ module GdsApi
|
|
302
302
|
|
303
303
|
def content_api_has_countries(countries)
|
304
304
|
response = response_base.merge({
|
305
|
-
"results" => countries.map {|
|
305
|
+
"results" => countries.map { |slug, values|
|
306
|
+
updated_at = values.has_key?(:updated_at) ? {"updated_at" => values[:updated_at]} : {}
|
306
307
|
{
|
307
|
-
"id" => "#{CONTENT_API_ENDPOINT}/travel-advice/#{
|
308
|
-
"name" => name,
|
309
|
-
"identifier" =>
|
310
|
-
"web_url" => "http://www.test.gov.uk/travel-advice/#{
|
311
|
-
}
|
308
|
+
"id" => "#{CONTENT_API_ENDPOINT}/travel-advice/#{slug}.json",
|
309
|
+
"name" => values[:name],
|
310
|
+
"identifier" => slug,
|
311
|
+
"web_url" => "http://www.test.gov.uk/travel-advice/#{slug}",
|
312
|
+
}.merge(updated_at)
|
312
313
|
},
|
313
314
|
"total" => countries.length
|
314
315
|
})
|
@@ -11,7 +11,7 @@ module GdsApi
|
|
11
11
|
"postcode" => postcode
|
12
12
|
}
|
13
13
|
|
14
|
-
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.
|
14
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.gsub(' ','+') + ".json")
|
15
15
|
.to_return(:body => response.to_json, :status => 200)
|
16
16
|
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/partial/" + postcode.split(' ').first + ".json")
|
17
17
|
.to_return(:body => response.to_json, :status => 200)
|
@@ -35,19 +35,19 @@ module GdsApi
|
|
35
35
|
}]
|
36
36
|
}]
|
37
37
|
|
38
|
-
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.
|
38
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.gsub(' ','+') + ".json")
|
39
39
|
.to_return(:body => response.merge({'areas' => area_response}).to_json, :status => 200)
|
40
40
|
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/partial/" + postcode.split(' ').first + ".json")
|
41
41
|
.to_return(:body => response.to_json, :status => 200)
|
42
42
|
end
|
43
43
|
|
44
44
|
def mapit_does_not_have_a_postcode(postcode)
|
45
|
-
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.
|
45
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.gsub(' ','+') + ".json")
|
46
46
|
.to_return(:body => { "code" => 404, "error" => "No Postcode matches the given query." }.to_json, :status => 404)
|
47
47
|
end
|
48
48
|
|
49
49
|
def mapit_does_not_have_a_bad_postcode(postcode)
|
50
|
-
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.
|
50
|
+
stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.gsub(' ','+') + ".json")
|
51
51
|
.to_return(:body => { "code" => 400, "error" => "Postcode '#{postcode}' is not valid." }.to_json, :status => 400)
|
52
52
|
end
|
53
53
|
|
data/lib/gds_api/version.rb
CHANGED
data/test/content_api_test.rb
CHANGED
@@ -492,21 +492,30 @@ describe GdsApi::ContentApi do
|
|
492
492
|
end
|
493
493
|
end
|
494
494
|
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
495
|
+
describe "countries" do
|
496
|
+
before(:each) do
|
497
|
+
content_api_has_countries({
|
498
|
+
'afghanistan' => {:name => 'Afghanistan', :updated_at => "2013-02-11T16:12:22+00:00" },
|
499
|
+
'albania' => {:name => 'Albania'},
|
500
|
+
'algeria' => {:name => 'Algeria'}
|
501
|
+
})
|
502
|
+
|
503
|
+
@results = @api.countries['results']
|
504
|
+
end
|
501
505
|
|
502
|
-
|
503
|
-
|
506
|
+
it "should fetch the list of countries" do
|
507
|
+
assert_equal 3, @results.length
|
504
508
|
|
505
|
-
|
506
|
-
|
509
|
+
assert_equal ['afghanistan', 'albania', 'algeria'], @results.map {|c| c['identifier'] }
|
510
|
+
assert_equal ['Afghanistan', 'Albania', 'Algeria'], @results.map {|c| c['name'] }
|
507
511
|
|
508
|
-
|
509
|
-
|
512
|
+
assert_equal "#{@base_api_url}/travel-advice/afghanistan.json", @results.first['id']
|
513
|
+
assert_equal 'http://www.test.gov.uk/travel-advice/afghanistan', @results.first['web_url']
|
514
|
+
end
|
515
|
+
|
516
|
+
it "should parse all updated_at values to Time objects" do
|
517
|
+
assert_equal [Time.parse("2013-02-11T16:12:22+00:00"), nil, nil], @results.map {|c| c['updated_at'] }
|
518
|
+
end
|
510
519
|
end
|
511
520
|
|
512
521
|
def api_response_for_results(results)
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 4.
|
5
|
+
version: 4.6.0
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- James Stewart
|
@@ -239,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
239
|
requirements:
|
240
240
|
- - ">="
|
241
241
|
- !ruby/object:Gem::Version
|
242
|
-
hash:
|
242
|
+
hash: 4475864604503724645
|
243
243
|
segments:
|
244
244
|
- 0
|
245
245
|
version: "0"
|
@@ -248,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
248
|
requirements:
|
249
249
|
- - ">="
|
250
250
|
- !ruby/object:Gem::Version
|
251
|
-
hash:
|
251
|
+
hash: 4475864604503724645
|
252
252
|
segments:
|
253
253
|
- 0
|
254
254
|
version: "0"
|