gds-api-adapters 8.2.2 → 8.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -52,7 +52,7 @@ class GdsApi::ContentApi < GdsApi::Base
52
52
  def with_tag(tag, tag_type=nil)
53
53
  tag_key = key_for_tag_type(tag_type)
54
54
 
55
- get_list!("#{base_url}/with_tag.json?#{tag_key}=#{CGI.escape(tag)}&include_children=1")
55
+ get_list!("#{base_url}/with_tag.json?#{tag_key}=#{CGI.escape(tag)}")
56
56
  end
57
57
 
58
58
  def curated_list(tag, tag_type=nil)
@@ -27,7 +27,7 @@ module GdsApi
27
27
  if rendering_app
28
28
  hash[:rendering_app] = rendering_app
29
29
  end
30
- [:need_id, :section, :indexable_content, :paths, :prefixes].each do |attr_name|
30
+ [:need_id, :section, :industry_sectors, :indexable_content, :paths, :prefixes].each do |attr_name|
31
31
  if record.respond_to? attr_name
32
32
  hash[attr_name] = record.send(attr_name)
33
33
  end
@@ -93,21 +93,50 @@ module GdsApi
93
93
  def content_api_has_artefacts_with_a_tag(tag_type, slug, artefact_slugs=[])
94
94
  body = plural_response_base.merge(
95
95
  "results" => artefact_slugs.map do |artefact_slug|
96
- artefact_ slug(artefact_slug)
96
+ artefact_for_slug(artefact_slug)
97
97
  end
98
98
  )
99
+
100
+ endpoint = "#{CONTENT_API_ENDPOINT}/with_tag.json"
101
+ resp = { status: 200, body: body.to_json, headers: {} }
102
+
103
+ stub_request(:get, endpoint)
104
+ .with(:query => { tag_type => slug })
105
+ .to_return(resp)
106
+
107
+ if tag_type == "section"
108
+ stub_request(:get, endpoint)
109
+ .with(:query => { "tag" => slug })
110
+ .to_return(resp)
111
+ end
112
+
99
113
  sort_orders = ["alphabetical", "curated"]
100
114
  sort_orders.each do |order|
115
+ stub_request(:get, endpoint)
116
+ .with(:query => { tag_type => slug, "sort" => order })
117
+ .to_return(resp)
118
+
101
119
  if tag_type == "section"
102
- section_url = "#{CONTENT_API_ENDPOINT}/with_tag.json?sort=#{order}&tag=#{CGI.escape(slug)}"
103
- stub_request(:get, section_url).to_return(status: 200, body: body.to_json, headers: {})
120
+ stub_request(:get, endpoint)
121
+ .with(:query => { "tag" => slug, "sort" => order })
122
+ .to_return(resp)
104
123
  end
105
-
106
- url = "#{CONTENT_API_ENDPOINT}/with_tag.json?sort=#{order}&#{CGI.escape(tag_type)}=#{CGI.escape(slug)}"
107
- stub_request(:get, url).to_return(status: 200, body: body.to_json, headers: {})
108
124
  end
109
125
  end
110
126
 
127
+ def content_api_has_sorted_artefacts_with_a_tag(tag_type, slug, sort_order, artefact_slugs=[])
128
+ body = plural_response_base.merge(
129
+ "results" => artefact_slugs.map do |artefact_slug|
130
+ artefact_for_slug(artefact_slug)
131
+ end
132
+ )
133
+
134
+ endpoint = "#{CONTENT_API_ENDPOINT}/with_tag.json"
135
+ stub_request(:get, endpoint)
136
+ .with(:query => { tag_type => slug, "sort" => sort_order })
137
+ .to_return(status: 200, body: body.to_json, headers: {})
138
+ end
139
+
111
140
  def content_api_has_an_artefact(slug, body = artefact_for_slug(slug))
112
141
  ArtefactStub.new(slug).with_response_body(body).stub
113
142
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '8.2.2'
2
+ VERSION = '8.2.3'
3
3
  end
@@ -310,13 +310,8 @@ describe GdsApi::ContentApi do
310
310
  assert_equal "#{@base_api_url}/tags/genres/indie%2Findie-rock.json", first_section.id
311
311
  end
312
312
 
313
- it "should produce an artefact with the provided tag" do
314
- tag = "crime-and-justice"
315
- api_url = "#{@base_api_url}/with_tag.json?tag=#{tag}&include_children=1"
316
- json = {
317
- results: [{title: "Complain about a claims company"}]
318
- }.to_json
319
- stub_request(:get, api_url).to_return(:status => 200, :body => json)
313
+ it "returns artefacts given a section" do
314
+ content_api_has_artefacts_in_a_section("crime-and-justice", ["complain-about-a-claims-company"])
320
315
  response = @api.with_tag("crime-and-justice")
321
316
 
322
317
  # Old dictionary-style access
@@ -328,81 +323,52 @@ describe GdsApi::ContentApi do
328
323
  end
329
324
 
330
325
  it "returns artefacts given a tag and tag type" do
331
- api_url = "#{@base_api_url}/with_tag.json?genre=reggae&include_children=1"
332
- json = {
333
- results: [{title: "Three Little Birds"}]
334
- }
335
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
326
+ content_api_has_artefacts_with_a_tag("genre", "reggae", ["three-little-birds"])
336
327
  response = @api.with_tag("reggae", "genre")
337
328
 
338
- assert_equal "Three Little Birds", response.first.title
329
+ assert_equal "Three little birds", response.first.title
339
330
  end
340
331
 
341
- it "should return tag tree for a specific tag" do
342
- tag = "crime-and-justice"
343
- api_url = "#{@base_api_url}/tags/#{tag}.json"
344
- json = {
345
- title: "Crime and Justice"
346
- }
347
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
348
- response = @api.tag(tag)
349
- title = response['title']
350
- assert_equal json[:title], title
332
+ it "returns tag information for a section" do
333
+ content_api_has_section("crime-and-justice")
334
+ response = @api.tag("crime-and-justice")
335
+
336
+ assert_equal "Crime and justice", response["title"]
351
337
  end
352
338
 
353
- it "returns tag information given a tag and tag type" do
354
- api_url = "#{@base_api_url}/tags/genre/reggae.json"
355
- json = {
356
- title: "Reggae"
357
- }
358
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
339
+ it "returns tag information for a tag and tag type" do
340
+ content_api_has_tag("genre", "reggae")
359
341
  response = @api.tag("reggae", "genre")
360
342
 
361
343
  assert_equal "Reggae", response['title']
362
344
  end
363
345
 
364
- it "returns artefacts for a tag in curated list order" do
365
- api_url = "#{@base_api_url}/with_tag.json?tag=crime-and-justice&sort=curated"
366
- json = {
367
- results: [{title: "Complain about a claims company"}]
368
- }
369
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
346
+ it "returns artefacts in curated list order for a section" do
347
+ content_api_has_artefacts_in_a_section("crime-and-justice", ["complain-about-a-claims-company"])
370
348
  response = @api.curated_list("crime-and-justice")
371
349
 
372
350
  assert_equal "Complain about a claims company", response.first.title
373
351
  end
374
352
 
375
353
  it "returns artefacts in curated list order for a tag and tag type" do
376
- api_url = "#{@base_api_url}/with_tag.json?genre=reggae&sort=curated"
377
- json = {
378
- results: [{title: "Buffalo Soldier"}]
379
- }
380
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
354
+ content_api_has_artefacts_with_a_tag("genre", "reggae", ["buffalo-soldier"])
381
355
  response = @api.curated_list("reggae", "genre")
382
356
 
383
- assert_equal "Buffalo Soldier", response.first.title
357
+ assert_equal "Buffalo soldier", response.first.title
384
358
  end
385
359
 
386
360
  it "returns artefacts for a tag in a given sort order" do
387
- api_url = "#{@base_api_url}/with_tag.json?tag=crime-and-justice&sort=foo"
388
- json = {
389
- results: [{title: "Complain about a claims company"}]
390
- }
391
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
392
- response = @api.sorted_by("crime-and-justice", "foo")
361
+ content_api_has_artefacts_in_a_section("crime-and-justice", ["complain-about-a-claims-company"])
362
+ response = @api.sorted_by("crime-and-justice", "alphabetical")
393
363
 
394
364
  assert_equal "Complain about a claims company", response.first.title
395
365
  end
396
366
 
397
367
  it "returns artefacts in a given sort order for a tag and tag type" do
398
- api_url = "#{@base_api_url}/with_tag.json?genre=reggae&sort=foo"
399
- json = {
400
- results: [{title: "Is This Love"}]
401
- }
402
- stub_request(:get, api_url).to_return(:status => 200, :body => json.to_json)
368
+ content_api_has_sorted_artefacts_with_a_tag("genre", "reggae", "foo", ["is-this-love"])
403
369
  response = @api.sorted_by("reggae", "foo", "genre")
404
370
 
405
- assert_equal "Is This Love", response.first.title
371
+ assert_equal "Is this love", response.first.title
406
372
  end
407
373
  end
408
374
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.2.2
4
+ version: 8.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-09 00:00:00.000000000 Z
12
+ date: 2014-01-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
@@ -364,7 +364,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
364
364
  version: '0'
365
365
  segments:
366
366
  - 0
367
- hash: -3236500390538841432
367
+ hash: 2889202299403789685
368
368
  required_rubygems_version: !ruby/object:Gem::Requirement
369
369
  none: false
370
370
  requirements:
@@ -373,7 +373,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
373
373
  version: '0'
374
374
  segments:
375
375
  - 0
376
- hash: -3236500390538841432
376
+ hash: 2889202299403789685
377
377
  requirements: []
378
378
  rubyforge_project:
379
379
  rubygems_version: 1.8.23