gds-api-adapters 35.0.1 → 36.0.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.
- checksums.yaml +4 -4
- data/lib/gds_api/publishing_api_v2.rb +20 -2
- data/lib/gds_api/rummager.rb +1 -12
- data/lib/gds_api/version.rb +1 -1
- data/test/rummager_test.rb +2 -71
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0ad34f7d7d009484cc99f916e4963eb89830733a
|
4
|
+
data.tar.gz: 19d1e39bfef4736154f26c6f225362e1ca88b42b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b56ad19c715ffeef14cd546a7dae1b0716e02d81c3704a7c8672d5d59c46c1e4b09680ff6cf68c46a2161f266db47716e1daf4966ea85ff0fe5dce7d302460f3
|
7
|
+
data.tar.gz: 4a9f7b802aa84a1a9e582a473f7d61774be034106c6083dce94914ac8061d60963c8c07dcb029fe276548647544021bdcd6d66b27a9208befdc8598ddad12ef1
|
@@ -156,9 +156,27 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
|
|
156
156
|
post_json!(discard_url(content_id), params)
|
157
157
|
end
|
158
158
|
|
159
|
-
#
|
159
|
+
# Get the link set for the given content_id.
|
160
|
+
#
|
161
|
+
# Given a Content ID, it fetchs the existing link set and their version.
|
162
|
+
#
|
163
|
+
# @param content_id [String]
|
164
|
+
#
|
165
|
+
# @return [GdsApi::Response] A response containing `links` and `version`.
|
166
|
+
#
|
167
|
+
# @example
|
168
|
+
#
|
169
|
+
# publishing_api.get_links("a-content-id")
|
170
|
+
# # => {
|
171
|
+
# "content_id" => "a-content-id",
|
172
|
+
# "links" => [
|
173
|
+
# "organisation" => "organisation-content-id",
|
174
|
+
# "document_collection" => "document-collection-content-id"
|
175
|
+
# ],
|
176
|
+
# "version" => 17
|
177
|
+
# }
|
160
178
|
#
|
161
|
-
# @see https://github.com/alphagov/publishing-api/blob/master/doc/
|
179
|
+
# @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2linkscontent_id
|
162
180
|
def get_links(content_id)
|
163
181
|
get_json(links_url(content_id))
|
164
182
|
end
|
data/lib/gds_api/rummager.rb
CHANGED
@@ -6,20 +6,9 @@ module GdsApi
|
|
6
6
|
|
7
7
|
# Perform a search.
|
8
8
|
#
|
9
|
-
# @deprecated Alias for `#search`.
|
10
9
|
# @param query [Hash] A valid search query. See Rummager documentation for options.
|
11
10
|
#
|
12
|
-
# @see https://github.com/alphagov/rummager/blob/master/docs/
|
13
|
-
def unified_search(args)
|
14
|
-
request_url = "#{base_url}/unified_search.json?#{Rack::Utils.build_nested_query(args)}"
|
15
|
-
get_json!(request_url)
|
16
|
-
end
|
17
|
-
|
18
|
-
# Perform a search.
|
19
|
-
#
|
20
|
-
# @param query [Hash] A valid search query. See Rummager documentation for options.
|
21
|
-
#
|
22
|
-
# @see https://github.com/alphagov/rummager/blob/master/docs/unified-search-api.md
|
11
|
+
# @see https://github.com/alphagov/rummager/blob/master/docs/search-api.md
|
23
12
|
def search(args)
|
24
13
|
request_url = "#{base_url}/search.json?#{Rack::Utils.build_nested_query(args)}"
|
25
14
|
get_json!(request_url)
|
data/lib/gds_api/version.rb
CHANGED
data/test/rummager_test.rb
CHANGED
@@ -4,7 +4,6 @@ require "gds_api/rummager"
|
|
4
4
|
describe GdsApi::Rummager do
|
5
5
|
before(:each) do
|
6
6
|
stub_request(:get, /example.com\/advanced_search/).to_return(body: "[]")
|
7
|
-
stub_request(:get, /example.com\/unified_search/).to_return(body: "[]")
|
8
7
|
stub_request(:get, /example.com\/search/).to_return(body: "[]")
|
9
8
|
end
|
10
9
|
|
@@ -65,74 +64,6 @@ describe GdsApi::Rummager do
|
|
65
64
|
assert_requested :get, /order\[public_timestamp\]=desc/
|
66
65
|
end
|
67
66
|
|
68
|
-
# tests for unified search
|
69
|
-
|
70
|
-
it "#unified_search should raise an exception if the service at the search URI returns a 500" do
|
71
|
-
stub_request(:get, /example.com\/unified_search.json/).to_return(status: [500, "Internal Server Error"])
|
72
|
-
assert_raises(GdsApi::HTTPServerError) do
|
73
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query")
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
it "#unified_search should raise an exception if the service at the search URI returns a 404" do
|
78
|
-
stub_request(:get, /example.com\/unified_search/).to_return(status: [404, "Not Found"])
|
79
|
-
assert_raises(GdsApi::HTTPNotFound) do
|
80
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query")
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
it "#unified_search should raise an exception if the service at the unified search URI returns a 400" do
|
85
|
-
stub_request(:get, /example.com\/unified_search/).to_return(
|
86
|
-
status: [400, "Bad Request"],
|
87
|
-
body: %q("error":"Filtering by \"coffee\" is not allowed"),
|
88
|
-
)
|
89
|
-
assert_raises(GdsApi::HTTPClientError) do
|
90
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query", filter_coffee: "tea")
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
it "#unified_search should raise an exception if the service at the unified search URI returns a 422" do
|
95
|
-
stub_request(:get, /example.com\/unified_search/).to_return(
|
96
|
-
status: [422, "Bad Request"],
|
97
|
-
body: %q("error":"Filtering by \"coffee\" is not allowed"),
|
98
|
-
)
|
99
|
-
assert_raises(GdsApi::HTTPClientError) do
|
100
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query", filter_coffee: "tea")
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
it "#unified_search should raise an exception if the service at the search URI times out" do
|
105
|
-
stub_request(:get, /example.com\/unified_search/).to_timeout
|
106
|
-
assert_raises(GdsApi::TimedOutException) do
|
107
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query")
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
it "#unified_search should return the search deserialized from json" do
|
112
|
-
search_results = [{"title" => "document-title"}]
|
113
|
-
stub_request(:get, /example.com\/unified_search/).to_return(body: search_results.to_json)
|
114
|
-
results = GdsApi::Rummager.new("http://example.com").unified_search(q: "query")
|
115
|
-
assert_equal search_results, results.to_hash
|
116
|
-
end
|
117
|
-
|
118
|
-
it "#unified_search should request the search results in JSON format" do
|
119
|
-
GdsApi::Rummager.new("http://example.com").unified_search(q: "query")
|
120
|
-
|
121
|
-
assert_requested :get, /.*/, headers: {"Accept" => "application/json"}
|
122
|
-
end
|
123
|
-
|
124
|
-
it "#unified_search should issue a request for all the params supplied" do
|
125
|
-
GdsApi::Rummager.new("http://example.com").unified_search(
|
126
|
-
q: "query & stuff",
|
127
|
-
filter_topics: ["1", "2"],
|
128
|
-
order: "-public_timestamp",
|
129
|
-
)
|
130
|
-
|
131
|
-
assert_requested :get, /q=query%20%26%20stuff/
|
132
|
-
assert_requested :get, /filter_topics\[\]=1&filter_topics\[\]=2/
|
133
|
-
assert_requested :get, /order=-public_timestamp/
|
134
|
-
end
|
135
|
-
|
136
67
|
# tests for search
|
137
68
|
|
138
69
|
it "#search should raise an exception if the service at the search URI returns a 500" do
|
@@ -149,7 +80,7 @@ describe GdsApi::Rummager do
|
|
149
80
|
end
|
150
81
|
end
|
151
82
|
|
152
|
-
it "#search should raise an exception if the service at the
|
83
|
+
it "#search should raise an exception if the service at the search URI returns a 400" do
|
153
84
|
stub_request(:get, /example.com\/search/).to_return(
|
154
85
|
status: [400, "Bad Request"],
|
155
86
|
body: %q("error":"Filtering by \"coffee\" is not allowed"),
|
@@ -159,7 +90,7 @@ describe GdsApi::Rummager do
|
|
159
90
|
end
|
160
91
|
end
|
161
92
|
|
162
|
-
it "#search should raise an exception if the service at the
|
93
|
+
it "#search should raise an exception if the service at the search URI returns a 422" do
|
163
94
|
stub_request(:get, /example.com\/search/).to_return(
|
164
95
|
status: [422, "Bad Request"],
|
165
96
|
body: %q("error":"Filtering by \"coffee\" is not allowed"),
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 36.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-09-
|
11
|
+
date: 2016-09-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plek
|