gds-api-adapters 36.2.0 → 36.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 159f3160e4dabd497fa880d34c3bdcf5e6cf969b
4
- data.tar.gz: f797232c04c2cdb65463bc09ea6ac76f47ccdecb
3
+ metadata.gz: 5e72a0c3c2f618e36bc65ed7b87b351f68d0a17a
4
+ data.tar.gz: b4dfb7f533bcf6d466831f1e1f64ee253a2a8a56
5
5
  SHA512:
6
- metadata.gz: a2c0eb54200b50436293a626f340a340f7d6d1f17374e8a2fa8c59fbd8daaff402050a8763f908acaabd7c1ef4e75549022fcdd218898380b3dd9111feb6c286
7
- data.tar.gz: 78ed4872691ad3e45156ef2671e4839a1ac708caa76ca8a8e0b001bafd62d4a42c9d17a5489d6a2fd65ddb3fedf3dd036b5fc2a1ceaf33cdc5c00c6f675571ae
6
+ metadata.gz: 8d54634fa0f200ec449f86fad339489078912a81ef83ae5cf575fafb9f92f097cc3d991d5ce46db537078b0a43f7f387bf7688a8504c4b93dccbb41be817c263
7
+ data.tar.gz: 7f8ce9ff731ef650cc487df2dbfecfb7cfe8fc954ae20a16b08ac2c4ee38197a8be70dae84192ed47bd5bb5e84fbe755e07a9eadd89f2065d9cebb4bba763ba6
@@ -4,14 +4,14 @@ require_relative 'base'
4
4
  #
5
5
  # @see https://github.com/alphagov/publishing-api
6
6
  # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-application-examples.md
7
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/object-model-explanation.md
7
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/model.md
8
8
  class GdsApi::PublishingApiV2 < GdsApi::Base
9
9
  # Put a content item
10
10
  #
11
11
  # @param content_id [UUID]
12
12
  # @param payload [Hash] A valid content item
13
13
  #
14
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#put-v2contentcontent_id
14
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#put-v2contentcontent_id
15
15
  def put_content(content_id, payload)
16
16
  put_json!(content_url(content_id), payload)
17
17
  end
@@ -25,7 +25,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
25
25
  # @option params [String] locale The language, defaults to 'en' in publishing-api.
26
26
  #
27
27
  # @return [GdsApi::Response] a content item
28
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2contentcontent_id
28
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2contentcontent_id
29
29
  def get_content(content_id, params = {})
30
30
  get_json(content_url(content_id, params))
31
31
  end
@@ -41,7 +41,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
41
41
  # @return [GdsApi::Response] a content item
42
42
  #
43
43
  # @raise [HTTPNotFound] when the content item is not found
44
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2contentcontent_id
44
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2contentcontent_id
45
45
  def get_content!(content_id, params = {})
46
46
  get_json!(content_url(content_id, params))
47
47
  end
@@ -55,7 +55,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
55
55
  # publishing_api.lookup_content_ids(base_paths: ['/foo', '/bar'])
56
56
  # # => { "/foo" => "51ac4247-fd92-470a-a207-6b852a97f2db", "/bar" => "261bd281-f16c-48d5-82d2-9544019ad9ca" }
57
57
  #
58
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#post-lookup-by-base-path
58
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#post-lookup-by-base-path
59
59
  def lookup_content_ids(base_paths:)
60
60
  response = post_json!("#{endpoint}/lookup-by-base-path", base_paths: base_paths)
61
61
  response.to_hash
@@ -75,7 +75,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
75
75
  # publishing_api.lookup_content_id(base_path: '/foo')
76
76
  # # => "51ac4247-fd92-470a-a207-6b852a97f2db"
77
77
  #
78
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#post-lookup-by-base-path
78
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#post-lookup-by-base-path
79
79
  def lookup_content_id(base_path:)
80
80
  lookups = lookup_content_ids(base_paths: [base_path])
81
81
  lookups[base_path]
@@ -91,7 +91,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
91
91
  # @param params [Hash]
92
92
  # @option params [String] locale The language, defaults to 'en' in publishing-api.
93
93
  #
94
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#post-v2contentcontent_idpublish
94
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#post-v2contentcontent_idpublish
95
95
  def publish(content_id, update_type, options = {})
96
96
  params = {
97
97
  update_type: update_type
@@ -120,7 +120,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
120
120
  # @param previous_version [Integer] (optional) A lock version number for optimistic locking.
121
121
  # @param locale [String] (optional) The content item locale.
122
122
  #
123
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#post-v2contentcontent_idunpublish
123
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#post-v2contentcontent_idunpublish
124
124
  def unpublish(content_id, type:, explanation: nil, alternative_path: nil, discard_drafts: false, allow_draft: false, previous_version: nil, locale: nil)
125
125
  params = {
126
126
  type: type
@@ -144,7 +144,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
144
144
  # @option params [String] locale The language, defaults to 'en' in publishing-api.
145
145
  # @option params [Integer] previous_version used to ensure the request is discarding the latest lock version of the draft
146
146
  #
147
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#post-v2contentcontent_iddiscard-draft
147
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#post-v2contentcontent_iddiscard-draft
148
148
  def discard_draft(content_id, options = {})
149
149
  optional_keys = [
150
150
  :locale,
@@ -204,7 +204,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
204
204
  # }
205
205
  # }
206
206
  #
207
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2expanded-linkscontent_id
207
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2expanded-linkscontent_id
208
208
  def get_expanded_links(content_id)
209
209
  validate_content_id(content_id)
210
210
  url = "#{endpoint}/v2/expanded-links/#{content_id}"
@@ -230,7 +230,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
230
230
  # bulk_publishing: true
231
231
  # )
232
232
  #
233
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#patch-v2linkscontent_id
233
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#patch-v2linkscontent_id
234
234
  def patch_links(content_id, params)
235
235
  payload = {
236
236
  links: params.fetch(:links)
@@ -243,7 +243,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
243
243
 
244
244
  # FIXME: Add documentation
245
245
  #
246
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2content
246
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2content
247
247
  def get_content_items(params)
248
248
  query = query_string(params)
249
249
  get_json("#{endpoint}/v2/content#{query}")
@@ -251,7 +251,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
251
251
 
252
252
  # FIXME: Add documentation
253
253
  #
254
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2linkables
254
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2linkables
255
255
  def get_linkables(document_type: nil, format: nil)
256
256
  if document_type.nil?
257
257
  if format.nil?
@@ -270,7 +270,7 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
270
270
 
271
271
  # FIXME: Add documentation
272
272
  #
273
- # @see https://github.com/alphagov/publishing-api/blob/master/doc/publishing-api-syntactic-usage.md#get-v2linkedcontent_id
273
+ # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2linkedcontent_id
274
274
  def get_linked_items(content_id, params = {})
275
275
  query = query_string(params)
276
276
  validate_content_id(content_id)
@@ -21,6 +21,26 @@ class GdsApi::SupportApi < GdsApi::Base
21
21
  post_json!("#{endpoint}/anonymous-feedback/global-export-requests", global_export_request: request_details)
22
22
  end
23
23
 
24
+ # Create a Page Improvement
25
+ #
26
+ # Makes a +POST+ request to the support api to create a Page Improvement.
27
+ #
28
+ # @param params [Hash] Any attributes that relate to a Page Improvement.
29
+ #
30
+ # @return [GdsApi::Response] The wrapped http response from the api. Responds to the following:
31
+ # :status a string that is either 'success' or 'error'
32
+ #
33
+ # @raise [HTTPErrorResponse] if the request returns an error
34
+ #
35
+ # @example
36
+ # support_api.create_page_improvement(
37
+ # description: 'The title is wrong',
38
+ # path: 'http://gov.uk/service-manual/agile'
39
+ # )
40
+ def create_page_improvement(params)
41
+ post_json!("#{endpoint}/page-improvements", params)
42
+ end
43
+
24
44
  def problem_report_daily_totals_for(date)
25
45
  date_string = date.strftime("%Y-%m-%d")
26
46
  get_json!("#{endpoint}/anonymous-feedback/problem-reports/#{date_string}/totals")
@@ -235,12 +235,93 @@ module GdsApi
235
235
  stub_request(:get, url).to_return(status: 404, body: resource_not_found(content_id, "content item").to_json, headers: {})
236
236
  end
237
237
 
238
+ # Stubs a request to links endpoint
239
+ #
240
+ # @param [Hash] links the structure of the links hash
241
+ #
242
+ # @example
243
+ #
244
+ # publishing_api_has_links(
245
+ # {
246
+ # "content_id" => "64aadc14-9bca-40d9-abb6-4f21f9792a05",
247
+ # "links" => {
248
+ # "mainstream_browse_pages" => ["df2e7a3e-2078-45de-a75a-fd37d027427e"],
249
+ # "parent" => ["df2e7a3e-2078-45de-a75a-fd37d027427e"],
250
+ # "organisations" => ["569a9ee5-c195-4b7f-b9dc-edc17a09113f", "5c54ae52-341b-499e-a6dd-67f04633b8cf"]
251
+ # },
252
+ # "version" => 6
253
+ # }
254
+ # )
255
+ #
256
+ # Services.publishing_api.get_links("64aadc14-9bca-40d9-abb6-4f21f9792a05")
257
+ # => {
258
+ # "content_id" => "64aadc14-9bca-40d9-abb6-4f21f9792a05",
259
+ # "links" => {
260
+ # "mainstream_browse_pages" => ["df2e7a3e-2078-45de-a75a-fd37d027427e"],
261
+ # "parent" => ["df2e7a3e-2078-45de-a75a-fd37d027427e"],
262
+ # "organisations" => ["569a9ee5-c195-4b7f-b9dc-edc17a09113f", "5c54ae52-341b-499e-a6dd-67f04633b8cf"]
263
+ # },
264
+ # "version" => 6
265
+ # }
238
266
  def publishing_api_has_links(links)
239
267
  links = links.with_indifferent_access
240
268
  url = PUBLISHING_API_V2_ENDPOINT + "/links/" + links[:content_id]
241
269
  stub_request(:get, url).to_return(status: 200, body: links.to_json, headers: {})
242
270
  end
243
271
 
272
+ # Stubs a request to expanded links endpoint
273
+ #
274
+ # @param [Hash] links the structure of the links hash
275
+ #
276
+ # @example
277
+ # publishing_api_has_expanded_links(
278
+ # {
279
+ # "content_id" => "64aadc14-9bca-40d9-abb4-4f21f9792a05",
280
+ # "expanded_links" => {
281
+ # "mainstream_browse_pages" => [
282
+ # {
283
+ # "content_id" => "df2e7a3e-2078-45de-a76a-fd37d027427a",
284
+ # "base_path" => "/a/base/path",
285
+ # "document_type" => "mainstream_browse_page",
286
+ # "locale" => "en",
287
+ # "links" => {},
288
+ # ...
289
+ # }
290
+ # ],
291
+ # "parent" => [
292
+ # {
293
+ # "content_id" => "df2e7a3e-2028-45de-a75a-fd37d027427e",
294
+ # "document_type" => "mainstream_browse_page",
295
+ # ...
296
+ # },
297
+ # ]
298
+ # }
299
+ # }
300
+ # )
301
+ #
302
+ # Services.publishing_api.expanded_links("64aadc14-9bca-40d9-abb4-4f21f9792a05")
303
+ # => {
304
+ # "content_id" => "64aadc14-9bca-40d9-abb4-4f21f9792a05",
305
+ # "expanded_links" => {
306
+ # "mainstream_browse_pages" => [
307
+ # {
308
+ # "content_id" => "df2e7a3e-2078-45de-a76a-fd37d027427a",
309
+ # "base_path" => "/a/base/path",
310
+ # "document_type" => "mainstream_browse_page",
311
+ # "locale" => "en",
312
+ # "links" => {},
313
+ # ...
314
+ # }
315
+ # ],
316
+ # "parent" => [
317
+ # {
318
+ # "content_id" => "df2e7a3e-2028-45de-a75a-fd37d027427e",
319
+ # "document_type" => "mainstream_browse_page",
320
+ # ...
321
+ # },
322
+ # ]
323
+ # }
324
+ # }
244
325
  def publishing_api_has_expanded_links(links)
245
326
  url = PUBLISHING_API_V2_ENDPOINT + "/expanded-links/" + links[:content_id]
246
327
  stub_request(:get, url).to_return(status: 200, body: links.to_json, headers: {})
@@ -36,6 +36,12 @@ module GdsApi
36
36
  post_stub.to_return(:status => 202)
37
37
  end
38
38
 
39
+ def stub_create_page_improvement(params)
40
+ post_stub = stub_http_request(:post, "#{SUPPORT_API_ENDPOINT}/page-improvements")
41
+ post_stub.with(:body => params)
42
+ post_stub.to_return(:status => 201)
43
+ end
44
+
39
45
  def stub_problem_report_daily_totals_for(date, expected_results = nil)
40
46
  date_string = date.strftime("%Y-%m-%d")
41
47
  get_stub = stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/problem-reports/#{date_string}/totals")
@@ -108,6 +114,10 @@ module GdsApi
108
114
  stub_http_request(:get, "#{SUPPORT_API_ENDPOINT}/anonymous-feedback/export-requests/#{id}").
109
115
  to_return(status: 200, body: response_body.to_json)
110
116
  end
117
+
118
+ def stub_any_support_api_call
119
+ stub_request(:any, %r{\A#{SUPPORT_API_ENDPOINT}})
120
+ end
111
121
  end
112
122
  end
113
123
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '36.2.0'
2
+ VERSION = '36.3.0'
3
3
  end
@@ -123,6 +123,17 @@ describe GdsApi::SupportApi do
123
123
  end
124
124
  end
125
125
 
126
+ describe "POST /page-improvements" do
127
+ it "makes a POST request to the support API" do
128
+ params = {description: "The title could be better."}
129
+ stub_post = stub_create_page_improvement(params)
130
+
131
+ @api.create_page_improvement(params)
132
+
133
+ assert_requested(stub_post)
134
+ end
135
+ end
136
+
126
137
  describe "GET /anonymous-feedback/export-requests/:id" do
127
138
  it "fetches the export request details from the API" do
128
139
  stub_get = stub_support_feedback_export_request(123)
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.2.0
4
+ version: 36.3.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-27 00:00:00.000000000 Z
11
+ date: 2016-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plek