gds-api-adapters 36.4.0 → 36.4.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06df600e92d5e29ebcc9d2d1011169f25ed806d3
|
4
|
+
data.tar.gz: 61a8846b1ce2833f1c72124435c154f5246439e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 66e7c5af97fc0c0f6766be3b134757b96b3e448b231f4898d284d7b53b49bed2521903c7a9621e27bfde9c657bee2febc3b3ab38ad469901cde1f469d5fee6b9
|
7
|
+
data.tar.gz: 972920cf66478a2134769bcb57958dd70ea58278162d40671940c0c0604552cddc620b33f7293ed295a51cd11fae9896c4a1bb7cb15ff52bca945dac51a0f9fe
|
@@ -169,6 +169,7 @@ module GdsApi
|
|
169
169
|
#)
|
170
170
|
def publishing_api_has_content(items, params = {})
|
171
171
|
url = PUBLISHING_API_V2_ENDPOINT + "/content"
|
172
|
+
|
172
173
|
if params.respond_to? :fetch
|
173
174
|
per_page = params.fetch(:per_page, 50)
|
174
175
|
page = params.fetch(:page, 1)
|
@@ -176,10 +177,19 @@ module GdsApi
|
|
176
177
|
per_page = 50
|
177
178
|
page = 1
|
178
179
|
end
|
179
|
-
|
180
|
+
|
181
|
+
start_position = (page-1) * per_page
|
182
|
+
page_items = items.slice(start_position, per_page) || []
|
183
|
+
|
184
|
+
number_of_pages =
|
185
|
+
if items.count < per_page
|
186
|
+
1
|
187
|
+
else
|
188
|
+
(items.count / per_page.to_f).ceil
|
189
|
+
end
|
180
190
|
|
181
191
|
body = {
|
182
|
-
results:
|
192
|
+
results: page_items,
|
183
193
|
total: items.count,
|
184
194
|
pages: number_of_pages,
|
185
195
|
current_page: page
|
data/lib/gds_api/version.rb
CHANGED
@@ -339,6 +339,49 @@ describe GdsApi::PublishingApiV2 do
|
|
339
339
|
end
|
340
340
|
end
|
341
341
|
|
342
|
+
describe "when a content item cannot be published because of a path conflict" do
|
343
|
+
before do
|
344
|
+
@content_item = content_item_for_content_id(@content_id)
|
345
|
+
|
346
|
+
publishing_api
|
347
|
+
.given("a draft content item exists with content_id #{@content_id} with a blocking live item at the same path")
|
348
|
+
.upon_receiving("a request to return the draft content item")
|
349
|
+
.with(
|
350
|
+
method: :get,
|
351
|
+
path: "/v2/content/#{@content_id}",
|
352
|
+
headers: GdsApi::JsonClient.default_request_headers.merge(
|
353
|
+
"Authorization" => "Bearer #{@bearer_token}"
|
354
|
+
),
|
355
|
+
)
|
356
|
+
.will_respond_with(
|
357
|
+
status: 200,
|
358
|
+
body: {
|
359
|
+
"warnings" => Pact.like({"content_item_blocking_publish" => "message"}),
|
360
|
+
"content_id" => @content_id,
|
361
|
+
"document_type" => Pact.like("special_route"),
|
362
|
+
"schema_name" => Pact.like("special_route"),
|
363
|
+
"publishing_app" => Pact.like("publisher"),
|
364
|
+
"rendering_app" => Pact.like("frontend"),
|
365
|
+
"locale" => Pact.like("en"),
|
366
|
+
"routes" => Pact.like([{}]),
|
367
|
+
"public_updated_at" => Pact.like("2015-07-30T13:58:11.000Z"),
|
368
|
+
"details" => Pact.like({}),
|
369
|
+
"publication_state" => "draft"
|
370
|
+
},
|
371
|
+
headers: {
|
372
|
+
"Content-Type" => "application/json; charset=utf-8",
|
373
|
+
},
|
374
|
+
)
|
375
|
+
end
|
376
|
+
|
377
|
+
it "responds with 200 and the draft content item containing a warning" do
|
378
|
+
response = @api_client.get_content(@content_id, version: 2)
|
379
|
+
assert_equal 200, response.code
|
380
|
+
assert_equal hash_including("content_item_blocking_publish"), response["warnings"]
|
381
|
+
end
|
382
|
+
|
383
|
+
end
|
384
|
+
|
342
385
|
describe "when requesting the published version" do
|
343
386
|
before do
|
344
387
|
@content_item = content_item_for_content_id(@content_id)
|
@@ -46,13 +46,16 @@ describe GdsApi::TestHelpers::PublishingApiV2 do
|
|
46
46
|
)
|
47
47
|
end
|
48
48
|
|
49
|
-
it 'returns
|
49
|
+
it 'returns paginated results' do
|
50
|
+
content_id_1 = "2878337b-bed9-4e7f-85b6-10ed2cbcd504"
|
51
|
+
content_id_2 = "2878337b-bed9-4e7f-85b6-10ed2cbcd505"
|
52
|
+
content_id_3 = "2878337b-bed9-4e7f-85b6-10ed2cbcd506"
|
53
|
+
|
50
54
|
publishing_api_has_content(
|
51
55
|
[
|
52
|
-
{ "content_id" =>
|
53
|
-
{ "content_id" =>
|
54
|
-
{ "content_id" =>
|
55
|
-
{ "content_id" => "2878337b-bed9-4e7f-85b6-10ed2cbcd507" },
|
56
|
+
{ "content_id" => content_id_1 },
|
57
|
+
{ "content_id" => content_id_2 },
|
58
|
+
{ "content_id" => content_id_3 },
|
56
59
|
],
|
57
60
|
{
|
58
61
|
page: 1,
|
@@ -61,10 +64,36 @@ describe GdsApi::TestHelpers::PublishingApiV2 do
|
|
61
64
|
)
|
62
65
|
|
63
66
|
response = publishing_api.get_content_items({ page: 1, per_page: 2 })
|
67
|
+
records = response['results']
|
64
68
|
|
65
|
-
assert_equal(response['total'],
|
69
|
+
assert_equal(response['total'], 3)
|
66
70
|
assert_equal(response['pages'], 2)
|
67
71
|
assert_equal(response['current_page'], 1)
|
72
|
+
|
73
|
+
assert_equal(records.length, 2)
|
74
|
+
assert_equal(records.first['content_id'], content_id_1)
|
75
|
+
assert_equal(records.last['content_id'], content_id_2)
|
76
|
+
end
|
77
|
+
|
78
|
+
it 'returns an empty list of results for out-of-bound queries' do
|
79
|
+
content_id_1 = "2878337b-bed9-4e7f-85b6-10ed2cbcd504"
|
80
|
+
content_id_2 = "2878337b-bed9-4e7f-85b6-10ed2cbcd505"
|
81
|
+
|
82
|
+
publishing_api_has_content(
|
83
|
+
[
|
84
|
+
{ "content_id" => content_id_1 },
|
85
|
+
{ "content_id" => content_id_2 },
|
86
|
+
],
|
87
|
+
{
|
88
|
+
page: 10,
|
89
|
+
per_page: 2
|
90
|
+
}
|
91
|
+
)
|
92
|
+
|
93
|
+
response = publishing_api.get_content_items({ page: 10, per_page: 2 })
|
94
|
+
records = response['results']
|
95
|
+
|
96
|
+
assert_equal(records, [])
|
68
97
|
end
|
69
98
|
end
|
70
99
|
|
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: 36.4.
|
4
|
+
version: 36.4.1
|
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-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plek
|