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.
@@ -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 {|id,name|
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/#{id}.json",
308
- "name" => name,
309
- "identifier" => id,
310
- "web_url" => "http://www.test.gov.uk/travel-advice/#{id}"
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.sub(' ','+') + ".json")
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.sub(' ','+') + ".json")
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.sub(' ','+') + ".json")
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.sub(' ','+') + ".json")
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
 
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '4.5.0'
2
+ VERSION = '4.6.0'
3
3
  end
@@ -492,21 +492,30 @@ describe GdsApi::ContentApi do
492
492
  end
493
493
  end
494
494
 
495
- it "should fetch the list of countries" do
496
- content_api_has_countries({
497
- 'afghanistan' => 'Afghanistan',
498
- 'albania' => 'Albania',
499
- 'algeria' => 'Algeria'
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
- results = @api.countries['results']
503
- assert_equal 3, results.length
506
+ it "should fetch the list of countries" do
507
+ assert_equal 3, @results.length
504
508
 
505
- assert_equal ['afghanistan', 'albania', 'algeria'], results.map {|c| c['identifier'] }
506
- assert_equal ['Afghanistan', 'Albania', 'Algeria'], results.map {|c| c['name'] }
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
- assert_equal "#{@base_api_url}/travel-advice/afghanistan.json", results.first['id']
509
- assert_equal 'http://www.test.gov.uk/travel-advice/afghanistan', results.first['web_url']
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.0
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: -3906045177861584672
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: -3906045177861584672
251
+ hash: 4475864604503724645
252
252
  segments:
253
253
  - 0
254
254
  version: "0"