gds-api-adapters 96.0.2 → 97.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/README.md +24 -0
- data/lib/gds_api/content_store.rb +1 -5
- data/lib/gds_api/publishing_api.rb +16 -0
- data/lib/gds_api/router.rb +1 -2
- data/lib/gds_api/test_helpers/publishing_api.rb +37 -0
- data/lib/gds_api/test_helpers/router.rb +3 -4
- data/lib/gds_api/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c352a48f1552b0934b7bdd88e8783b8c598b727353559ca6ca30a27877833a6
|
4
|
+
data.tar.gz: aaba187980a1326a859de794faca1e7e836c5385a32f7d12ea3c9c13a7d5a9ec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d06232b4511622aa14a0d8169b338d6f12eb320d38c2c16e0796a6b476c3fc2a9fe54b779fc4f43d886b37978864e24f787c6c6c0c4453a37838f5d0545785d2
|
7
|
+
data.tar.gz: f7247d52a2e02f6fca017f3b44f2aee212f63ddb3fd868862deb4b005e703bcf412cd74777b3ec1e94145eec476ff70bef7443e9e9426f4dd6f0d12a5d6beeef
|
data/README.md
CHANGED
@@ -110,6 +110,30 @@ Then at the PSQL command line:
|
|
110
110
|
|
111
111
|
`template1=# CREATE EXTENSION IF NOT EXISTS "uuid-ossp";`
|
112
112
|
|
113
|
+
## Releasing
|
114
|
+
|
115
|
+
1. Read the CHANGELOG.md and decide on the new semantic version number
|
116
|
+
1. Create a release branch, eg. `release-96.0.3`
|
117
|
+
1. Update the CHANGELOG.md
|
118
|
+
- Declare a new version number
|
119
|
+
- Move all unreleased changes beneath it
|
120
|
+
1. Update `lib/gds_api/version.rb` to match, eg
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
module GdsApi
|
124
|
+
VERSION = "96.0.3".freeze
|
125
|
+
end
|
126
|
+
```
|
127
|
+
|
128
|
+
1. Copy the lines from the CHANGELOG.md into the git commit
|
129
|
+
1. Propose and merge the pull request into `main`
|
130
|
+
|
131
|
+
Nb:
|
132
|
+
|
133
|
+
- You do not need to set any git tags
|
134
|
+
- After merging, CI will release the new version of the gem and Dependabot will
|
135
|
+
propose the new version of the gem to help distribute the changes to consumers
|
136
|
+
|
113
137
|
## Licence
|
114
138
|
|
115
139
|
Released under the MIT Licence, a copy of which can be found in the file
|
@@ -53,7 +53,7 @@ private
|
|
53
53
|
"#{Plek.new.website_root}#{destination_uri}"
|
54
54
|
end
|
55
55
|
|
56
|
-
[url,
|
56
|
+
[url, 301]
|
57
57
|
end
|
58
58
|
|
59
59
|
private_class_method :new
|
@@ -105,10 +105,6 @@ private
|
|
105
105
|
|
106
106
|
uri.to_s
|
107
107
|
end
|
108
|
-
|
109
|
-
def status_code(redirect)
|
110
|
-
redirect["redirect_type"] == "temporary" ? 302 : 301
|
111
|
-
end
|
112
108
|
end
|
113
109
|
|
114
110
|
class UnresolvedRedirect < GdsApi::BaseError; end
|
@@ -337,6 +337,22 @@ class GdsApi::PublishingApi < GdsApi::Base
|
|
337
337
|
get_json("#{endpoint}/v2/content#{query}")
|
338
338
|
end
|
339
339
|
|
340
|
+
# Get content items which embed a reusable content_id
|
341
|
+
#
|
342
|
+
# No params are currently permitted.
|
343
|
+
#
|
344
|
+
# @example
|
345
|
+
#
|
346
|
+
# publishing_api.get_content_by_embedded_document("4b148ebc-b2bb-40db-8e48-dd8cff363ff7")
|
347
|
+
#
|
348
|
+
# @return [GdsApi::Response] A response containing a summarised list of the content items which embed the target.
|
349
|
+
# The content items returned will be in either the draft of published state.
|
350
|
+
#
|
351
|
+
# @see https://github.com/alphagov/publishing-api/blob/main/docs/api.md#get-v2contentcontent_idembedded
|
352
|
+
def get_content_by_embedded_document(content_id)
|
353
|
+
get_json("#{endpoint}/v2/content/#{content_id}/embedded")
|
354
|
+
end
|
355
|
+
|
340
356
|
# Returns an Enumerator of content items for the provided
|
341
357
|
# query string parameters.
|
342
358
|
#
|
data/lib/gds_api/router.rb
CHANGED
@@ -33,7 +33,7 @@ class GdsApi::Router < GdsApi::Base
|
|
33
33
|
)
|
34
34
|
end
|
35
35
|
|
36
|
-
def add_redirect_route(path, type, destination,
|
36
|
+
def add_redirect_route(path, type, destination, options = {})
|
37
37
|
put_json(
|
38
38
|
"#{endpoint}/routes",
|
39
39
|
route: {
|
@@ -41,7 +41,6 @@ class GdsApi::Router < GdsApi::Base
|
|
41
41
|
route_type: type,
|
42
42
|
handler: "redirect",
|
43
43
|
redirect_to: destination,
|
44
|
-
redirect_type:,
|
45
44
|
segments_mode: options[:segments_mode],
|
46
45
|
},
|
47
46
|
)
|
@@ -340,6 +340,43 @@ module GdsApi
|
|
340
340
|
.to_return(status: 200, body: body.to_json, headers: {})
|
341
341
|
end
|
342
342
|
|
343
|
+
# Stub GET /v2/content/:content_id/embedded to return a list of content items that embed the target content_id
|
344
|
+
#
|
345
|
+
# @example
|
346
|
+
#
|
347
|
+
# stub_publishing_api_has_content_(
|
348
|
+
# content_id: "9faacf5c-f4e6-4bf9-ba90-413e997c1f22" # this is the content_id for a reusable edition
|
349
|
+
# total: 1 # the number of results returned
|
350
|
+
# results: [{
|
351
|
+
# "title" => "foo",
|
352
|
+
# "document_type" => "document",
|
353
|
+
# "base_path" => "/foo",
|
354
|
+
# "content_id" => "e60fae2a-5490-4e2f-9e80-2093c47608d4",
|
355
|
+
# "primary_publishing_organisation" => {
|
356
|
+
# "content_id" => "7662e1e7-79f9-4d0a-b754-6232186851f6",
|
357
|
+
# "title" => "bar",
|
358
|
+
# "base_path" => "/organisation/bar",
|
359
|
+
# },
|
360
|
+
# }] # an array of content items that embed the target content_id
|
361
|
+
# )
|
362
|
+
# @param content_id [UUID, Mocha::ParameterMatchers::Anything]
|
363
|
+
# @param total Integer
|
364
|
+
# @param params [Hash]
|
365
|
+
def stub_publishing_api_has_embedded_content(content_id:, total: 0, results: [])
|
366
|
+
url = if content_id.is_a?(Mocha::ParameterMatchers::Anything)
|
367
|
+
%r{\A#{PUBLISHING_API_V2_ENDPOINT}/content/[0-9a-fA-F-]{36}/embedded}
|
368
|
+
else
|
369
|
+
"#{PUBLISHING_API_V2_ENDPOINT}/content/#{content_id}/embedded"
|
370
|
+
end
|
371
|
+
|
372
|
+
stub_request(:get, url)
|
373
|
+
.to_return(body: {
|
374
|
+
"content_id" => content_id,
|
375
|
+
"total" => total,
|
376
|
+
"results" => results,
|
377
|
+
}.to_json)
|
378
|
+
end
|
379
|
+
|
343
380
|
# This method has been refactored into publishing_api_has_content (above)
|
344
381
|
# publishing_api_has_content allows for flexible passing in of arguments, please use instead
|
345
382
|
def stub_publishing_api_has_fields_for_document(document_type, items, fields)
|
@@ -21,8 +21,8 @@ module GdsApi
|
|
21
21
|
stub_router_has_route(path, handler: "backend", backend_id:, disabled:, route_type:)
|
22
22
|
end
|
23
23
|
|
24
|
-
def stub_router_has_redirect_route(path, redirect_to:,
|
25
|
-
stub_router_has_route(path, handler: "redirect", redirect_to:,
|
24
|
+
def stub_router_has_redirect_route(path, redirect_to:, route_type: "exact", disabled: false)
|
25
|
+
stub_router_has_route(path, handler: "redirect", redirect_to:, disabled:, route_type:)
|
26
26
|
end
|
27
27
|
|
28
28
|
def stub_router_has_gone_route(path, route_type: "exact", disabled: false)
|
@@ -52,14 +52,13 @@ module GdsApi
|
|
52
52
|
})
|
53
53
|
end
|
54
54
|
|
55
|
-
def stub_redirect_registration(path, type, destination,
|
55
|
+
def stub_redirect_registration(path, type, destination, segments_mode = nil)
|
56
56
|
stub_route_put({
|
57
57
|
route: {
|
58
58
|
incoming_path: path,
|
59
59
|
route_type: type,
|
60
60
|
handler: "redirect",
|
61
61
|
redirect_to: destination,
|
62
|
-
redirect_type:,
|
63
62
|
segments_mode:,
|
64
63
|
},
|
65
64
|
})
|
data/lib/gds_api/version.rb
CHANGED
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: 97.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -268,14 +268,14 @@ dependencies:
|
|
268
268
|
requirements:
|
269
269
|
- - '='
|
270
270
|
- !ruby/object:Gem::Version
|
271
|
-
version:
|
271
|
+
version: 5.0.2
|
272
272
|
type: :development
|
273
273
|
prerelease: false
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
275
275
|
requirements:
|
276
276
|
- - '='
|
277
277
|
- !ruby/object:Gem::Version
|
278
|
-
version:
|
278
|
+
version: 5.0.2
|
279
279
|
- !ruby/object:Gem::Dependency
|
280
280
|
name: simplecov
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
@@ -402,7 +402,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
402
402
|
- !ruby/object:Gem::Version
|
403
403
|
version: '0'
|
404
404
|
requirements: []
|
405
|
-
rubygems_version: 3.5.
|
405
|
+
rubygems_version: 3.5.22
|
406
406
|
signing_key:
|
407
407
|
specification_version: 4
|
408
408
|
summary: Adapters to work with GDS APIs
|