gds-api-adapters 10.6.2 → 10.6.3
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.
- data/lib/gds_api/need_api.rb +7 -0
- data/lib/gds_api/test_helpers/need_api.rb +10 -0
- data/lib/gds_api/version.rb +1 -1
- data/test/need_api_test.rb +49 -0
- metadata +4 -4
data/lib/gds_api/need_api.rb
CHANGED
@@ -8,6 +8,13 @@ class GdsApi::NeedApi < GdsApi::Base
|
|
8
8
|
get_list!("#{endpoint}/needs#{query}")
|
9
9
|
end
|
10
10
|
|
11
|
+
def needs_by_id(*ids)
|
12
|
+
ids_string = ids.flatten.map(&:to_i).sort.join(',')
|
13
|
+
query = query_string(ids: ids_string)
|
14
|
+
|
15
|
+
get_list!("#{endpoint}/needs#{query}")
|
16
|
+
end
|
17
|
+
|
11
18
|
def need(need_id)
|
12
19
|
get_json("#{endpoint}/needs/#{CGI.escape(need_id.to_s)}")
|
13
20
|
end
|
@@ -50,6 +50,16 @@ module GdsApi
|
|
50
50
|
stub_request(:get, url).to_return(status: 200, body: body.to_json, headers: {})
|
51
51
|
end
|
52
52
|
|
53
|
+
def need_api_has_need_ids(needs)
|
54
|
+
ids = needs.map {|need| (need["id"] || need[:id]).to_i }.sort.join(',')
|
55
|
+
url = NEED_API_ENDPOINT + "/needs?ids=#{ids}"
|
56
|
+
|
57
|
+
body = response_base.merge(
|
58
|
+
"results" => needs
|
59
|
+
)
|
60
|
+
stub_request(:get, url).to_return(status: 200, body: body.to_json, headers: {})
|
61
|
+
end
|
62
|
+
|
53
63
|
def need_api_has_need(need)
|
54
64
|
need_id = need["id"] || need[:id]
|
55
65
|
raise ArgumentError, "Test need is missing an ID" unless need_id
|
data/lib/gds_api/version.rb
CHANGED
data/test/need_api_test.rb
CHANGED
@@ -10,6 +10,55 @@ describe GdsApi::NeedApi do
|
|
10
10
|
@api = GdsApi::NeedApi.new(@base_api_url)
|
11
11
|
end
|
12
12
|
|
13
|
+
describe "requesting needs by ID" do
|
14
|
+
before do
|
15
|
+
need_api_has_need_ids([
|
16
|
+
{
|
17
|
+
"id" => "1",
|
18
|
+
"role" => "parent",
|
19
|
+
"goal" => "apply for a primary school place",
|
20
|
+
"benefit" => "my child can start school",
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"id" => "2",
|
24
|
+
"role" => "user",
|
25
|
+
"goal" => "find out about becoming a British citizen",
|
26
|
+
"benefit" => "i can take the correct steps to apply for citizenship",
|
27
|
+
},
|
28
|
+
{
|
29
|
+
"id" => "3",
|
30
|
+
"role" => "user",
|
31
|
+
"goal" => "find out about unemployment benefits",
|
32
|
+
"benefit" => "i have financial support whilst unemployed",
|
33
|
+
}
|
34
|
+
])
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns a list of needs matching the IDs" do
|
38
|
+
needs = @api.needs_by_id(1,2,3)
|
39
|
+
|
40
|
+
assert_equal 3, needs.count
|
41
|
+
assert_equal %w(1 2 3), needs.map(&:id)
|
42
|
+
assert_equal "apply for a primary school place", needs.results[0].goal
|
43
|
+
assert_equal "find out about becoming a British citizen", needs.results[1].goal
|
44
|
+
assert_equal "find out about unemployment benefits", needs.results[2].goal
|
45
|
+
end
|
46
|
+
|
47
|
+
it "makes the same request regardless of the order of the IDs" do
|
48
|
+
needs = @api.needs_by_id(2,1,3)
|
49
|
+
|
50
|
+
assert_equal 3, needs.count
|
51
|
+
assert_equal %w(1 2 3), needs.map(&:id)
|
52
|
+
end
|
53
|
+
|
54
|
+
it "correctly sorts IDs requested as strings" do
|
55
|
+
needs = @api.needs_by_id(%w(02 3 1))
|
56
|
+
|
57
|
+
assert_equal 3, needs.count
|
58
|
+
assert_equal %w(1 2 3), needs.map(&:id)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
13
62
|
describe "requesting needs" do
|
14
63
|
it "should return a list of all needs" do
|
15
64
|
req = need_api_has_needs([
|
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: 10.6.
|
4
|
+
version: 10.6.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-04-
|
12
|
+
date: 2014-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: plek
|
@@ -376,7 +376,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
376
376
|
version: '0'
|
377
377
|
segments:
|
378
378
|
- 0
|
379
|
-
hash:
|
379
|
+
hash: -3682421441784526579
|
380
380
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
381
381
|
none: false
|
382
382
|
requirements:
|
@@ -385,7 +385,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
385
385
|
version: '0'
|
386
386
|
segments:
|
387
387
|
- 0
|
388
|
-
hash:
|
388
|
+
hash: -3682421441784526579
|
389
389
|
requirements: []
|
390
390
|
rubyforge_project:
|
391
391
|
rubygems_version: 1.8.23
|