gds-api-adapters 4.5.0 → 4.6.0

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.
@@ -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"