gds-api-adapters 63.6.0 → 67.0.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
  SHA256:
3
- metadata.gz: c63bd76ee4646694f763c71980fcce76ae359bfd12ad2de8437679eb0f389422
4
- data.tar.gz: 5729acfdc3d52d7fd1c7e053a7740bc09424006088e6ce0631fed2144479e267
3
+ metadata.gz: 35ee9f533f626d99fe8f62ae41b6445e2f75729c333b096c52b90c49555e1d69
4
+ data.tar.gz: b1413571e9e8bf09d19497c88790549c947c66258fd25bd11884a6ade859acdf
5
5
  SHA512:
6
- metadata.gz: 7676cf189a66b0b699c08ae50605a4f481da8b775201876e641167b49d7a6fc33a2139c97f4b7d0801af335e3c32929afc7bb8c6cc562cd2999c889f7603f5c3
7
- data.tar.gz: 2c9f91be586e98a61e91dccf0c8bb66a9db31d1bbac59eccabf13e7fc8689f169126907d15a50ad483cb5605934240438ce5e2fbd97243511718be2278e7c359
6
+ metadata.gz: b05108e31ccb65d3c2e4735792de423580f2cdbb2ea8d8d0c6de92955b24084559f7e25b6aaed2cbca34b17734d37f2f9df98a5f8d676bcf8e072dc3880aef2b
7
+ data.tar.gz: 37ff704afc41d4b516ee043358099d9aadc4097ab0d6f70f47a3c38ed922e29d22c0f3b82a1bcac612c53af8c9649a72066709ddf8134ffe1279125f4e81d62f
data/README.md CHANGED
@@ -5,7 +5,6 @@ A set of API adapters to work with the GDS APIs.
5
5
  Example usage:
6
6
 
7
7
  ```ruby
8
- require 'gds_api/publishing_api'
9
8
  GdsApi.publishing_api.get_content("f3bbdec2-0e62-4520-a7fd-6ffd5d36e03a")
10
9
  ```
11
10
 
data/Rakefile CHANGED
@@ -1,5 +1,3 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
1
  require "rdoc/task"
4
2
  require "rake/testtask"
5
3
 
@@ -13,7 +11,8 @@ Rake::TestTask.new("test") do |t|
13
11
  t.test_files = FileList["test/**/*_test.rb"]
14
12
  t.warning = false
15
13
  end
16
- task default: :test
14
+
15
+ task default: %i[lint test]
17
16
 
18
17
  require "pact_broker/client/tasks"
19
18
 
@@ -31,5 +30,5 @@ end
31
30
 
32
31
  desc "Run the linter against changed files"
33
32
  task :lint do
34
- sh "bundle exec rubocop --format clang lib test"
33
+ sh "bundle exec rubocop --format clang"
35
34
  end
@@ -11,7 +11,6 @@ require "gds_api/mapit"
11
11
  require "gds_api/maslow"
12
12
  require "gds_api/organisations"
13
13
  require "gds_api/publishing_api"
14
- require "gds_api/publishing_api_v2"
15
14
  require "gds_api/router"
16
15
  require "gds_api/search"
17
16
  require "gds_api/support"
@@ -139,19 +138,6 @@ module GdsApi
139
138
  )
140
139
  end
141
140
 
142
- # Creates a GdsApi::PublishingApiV2 adapter
143
- #
144
- # This will set a bearer token if a PUBLISHING_API_BEARER_TOKEN environment
145
- # variable is set
146
- #
147
- # @return [GdsApi::PublishingApiV2]
148
- def self.publishing_api_v2(options = {})
149
- GdsApi::PublishingApiV2.new(
150
- Plek.find("publishing-api"),
151
- { bearer_token: ENV["PUBLISHING_API_BEARER_TOKEN"] }.merge(options),
152
- )
153
- end
154
-
155
141
  # Creates a GdsApi::Router adapter for communicating with Router API
156
142
  #
157
143
  # This will set a bearer token if a ROUTER_API_BEARER_TOKEN environment
@@ -24,7 +24,8 @@ class GdsApi::Base
24
24
  :put_json,
25
25
  :patch_json,
26
26
  :delete_json,
27
- :get_raw, :get_raw!,
27
+ :get_raw,
28
+ :get_raw!,
28
29
  :put_multipart,
29
30
  :post_multipart
30
31
 
@@ -69,9 +70,9 @@ private
69
70
  param_pairs = params.sort.map { |key, value|
70
71
  case value
71
72
  when Array
72
- value.map { |v|
73
+ value.map do |v|
73
74
  "#{CGI.escape(key.to_s + '[]')}=#{CGI.escape(v.to_s)}"
74
- }
75
+ end
75
76
  else
76
77
  "#{CGI.escape(key.to_s)}=#{CGI.escape(value.to_s)}"
77
78
  end
@@ -20,8 +20,8 @@ class GdsApi::Imminence < GdsApi::Base
20
20
  end
21
21
 
22
22
  def self.parse_place_hash(place_hash)
23
- location = self.extract_location_hash(place_hash["location"])
24
- address = self.extract_address_hash(place_hash)
23
+ location = extract_location_hash(place_hash["location"])
24
+ address = extract_address_hash(place_hash)
25
25
 
26
26
  place_hash.merge(location).merge(address)
27
27
  end
@@ -29,7 +29,7 @@ module GdsApi
29
29
  end
30
30
 
31
31
  def self.default_request_with_json_body_headers
32
- self.default_request_headers.merge(self.json_body_headers)
32
+ default_request_headers.merge(json_body_headers)
33
33
  end
34
34
 
35
35
  def self.json_body_headers
@@ -109,7 +109,7 @@ module GdsApi
109
109
  end
110
110
 
111
111
  # If no custom response is given, just instantiate Response
112
- create_response ||= Proc.new { |r| Response.new(r) }
112
+ create_response ||= proc { |r| Response.new(r) }
113
113
  create_response.call(response)
114
114
  end
115
115
 
@@ -177,10 +177,10 @@ module GdsApi
177
177
  ::RestClient::Request.execute(method_params)
178
178
  rescue Errno::ECONNREFUSED => e
179
179
  logger.error loggable.merge(status: "refused", error_message: e.message, error_class: e.class.name, end_time: Time.now.to_f).to_json
180
- raise GdsApi::EndpointNotFound.new("Could not connect to #{url}")
180
+ raise GdsApi::EndpointNotFound, "Could not connect to #{url}"
181
181
  rescue RestClient::Exceptions::Timeout => e
182
182
  logger.error loggable.merge(status: "timeout", error_message: e.message, error_class: e.class.name, end_time: Time.now.to_f).to_json
183
- raise GdsApi::TimedOutException.new
183
+ raise GdsApi::TimedOutException
184
184
  rescue URI::InvalidURIError => e
185
185
  logger.error loggable.merge(status: "invalid_uri", error_message: e.message, error_class: e.class.name, end_time: Time.now.to_f).to_json
186
186
  raise GdsApi::InvalidUrl
@@ -192,10 +192,10 @@ module GdsApi
192
192
  raise
193
193
  rescue Errno::ECONNRESET => e
194
194
  logger.error loggable.merge(status: "connection_reset", error_message: e.message, error_class: e.class.name, end_time: Time.now.to_f).to_json
195
- raise GdsApi::TimedOutException.new
195
+ raise GdsApi::TimedOutException
196
196
  rescue SocketError => e
197
197
  logger.error loggable.merge(status: "socket_error", error_message: e.message, error_class: e.class.name, end_time: Time.now.to_f).to_json
198
- raise GdsApi::SocketErrorException.new
198
+ raise GdsApi::SocketErrorException
199
199
  end
200
200
  end
201
201
  end
@@ -25,7 +25,7 @@ module GdsApi
25
25
  end
26
26
 
27
27
  def has_next_page?
28
- ! page_link("next").nil?
28
+ !page_link("next").nil?
29
29
  end
30
30
 
31
31
  def next_page
@@ -39,7 +39,7 @@ module GdsApi
39
39
  end
40
40
 
41
41
  def has_previous_page?
42
- ! page_link("previous").nil?
42
+ !page_link("previous").nil?
43
43
  end
44
44
 
45
45
  def previous_page
@@ -70,12 +70,12 @@ module GdsApi
70
70
  # point. Note that the responses are stored so subsequent pages will not be
71
71
  # loaded multiple times.
72
72
  def with_subsequent_pages
73
- Enumerator.new { |yielder|
74
- self.each do |i| yielder << i end
73
+ Enumerator.new do |yielder|
74
+ each { |i| yielder << i }
75
75
  if has_next_page?
76
- next_page.with_subsequent_pages.each do |i| yielder << i end
76
+ next_page.with_subsequent_pages.each { |i| yielder << i }
77
77
  end
78
- }
78
+ end
79
79
  end
80
80
 
81
81
  private
@@ -70,40 +70,40 @@ module GdsApi
70
70
 
71
71
  def search_terms(slug)
72
72
  options = {
73
- slug: slug,
74
- transaction: "search-terms",
75
- group_by: "searchKeyword",
76
- collect: "searchUniques:sum",
73
+ slug: slug,
74
+ transaction: "search-terms",
75
+ group_by: "searchKeyword",
76
+ collect: "searchUniques:sum",
77
77
  }
78
78
  statistics(options)
79
79
  end
80
80
 
81
81
  def searches(slug, is_multipart)
82
82
  options = {
83
- slug: slug,
84
- transaction: "search-terms",
85
- group_by: "pagePath",
86
- collect: "searchUniques:sum",
83
+ slug: slug,
84
+ transaction: "search-terms",
85
+ group_by: "pagePath",
86
+ collect: "searchUniques:sum",
87
87
  }
88
88
  statistics(options, is_multipart)
89
89
  end
90
90
 
91
91
  def page_views(slug, is_multipart)
92
92
  options = {
93
- slug: slug,
94
- transaction: "page-statistics",
95
- group_by: "pagePath",
96
- collect: "uniquePageviews:sum",
93
+ slug: slug,
94
+ transaction: "page-statistics",
95
+ group_by: "pagePath",
96
+ collect: "uniquePageviews:sum",
97
97
  }
98
98
  statistics(options, is_multipart)
99
99
  end
100
100
 
101
101
  def problem_reports(slug, is_multipart)
102
102
  options = {
103
- slug: slug,
104
- transaction: "page-contacts",
105
- group_by: "pagePath",
106
- collect: "total:sum",
103
+ slug: slug,
104
+ transaction: "page-contacts",
105
+ group_by: "pagePath",
106
+ collect: "total:sum",
107
107
  }
108
108
  statistics(options, is_multipart)
109
109
  end
@@ -114,11 +114,11 @@ module GdsApi
114
114
  # Backdrop can be found here: https://github.com/alphagov/backdrop
115
115
  def statistics(options, is_multipart = false)
116
116
  params = {
117
- group_by: options[:group_by],
118
- collect: options[:collect],
119
- duration: 42,
120
- period: "day",
121
- end_at: Date.today.to_time.getutc.iso8601,
117
+ group_by: options[:group_by],
118
+ collect: options[:collect],
119
+ duration: 42,
120
+ period: "day",
121
+ end_at: Date.today.to_time.getutc.iso8601,
122
122
  }
123
123
 
124
124
  filter_param = is_multipart ? :filter_by_prefix : :filter_by
@@ -381,7 +381,7 @@ class GdsApi::PublishingApi < GdsApi::Base
381
381
  # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#get-v2linkables
382
382
  def get_linkables(document_type: nil)
383
383
  if document_type.nil?
384
- raise ArgumentError.new("Please provide a `document_type`")
384
+ raise ArgumentError, "Please provide a `document_type`"
385
385
  end
386
386
 
387
387
  get_json("#{endpoint}/v2/linkables?document_type=#{document_type}")
@@ -486,7 +486,7 @@ class GdsApi::PublishingApi < GdsApi::Base
486
486
  # publishing_app: 'content-publisher',
487
487
  # rendering_app: 'government-frontend',
488
488
  # }
489
- #)
489
+ # )
490
490
  #
491
491
  # @see https://github.com/alphagov/publishing-api/blob/master/doc/api.md#put-publish-intentbase_path
492
492
  def put_intent(base_path, payload)
@@ -74,9 +74,13 @@ module GdsApi
74
74
  @parsed_content ||= transform_parsed(JSON.parse(@http_response.body))
75
75
  end
76
76
 
77
- def present?; true; end
77
+ def present?
78
+ true
79
+ end
78
80
 
79
- def blank?; false; end
81
+ def blank?
82
+ false
83
+ end
80
84
 
81
85
  private
82
86
 
@@ -85,7 +89,7 @@ module GdsApi
85
89
 
86
90
  case value
87
91
  when Hash
88
- Hash[value.map { |k, v|
92
+ Hash[value.map do |k, v|
89
93
  # NOTE: Don't bother transforming if the value is nil
90
94
  if k == "web_url" && v
91
95
  # Use relative URLs to route when the web_url value is on the
@@ -98,7 +102,7 @@ module GdsApi
98
102
  else
99
103
  [k, transform_parsed(v)]
100
104
  end
101
- }]
105
+ end]
102
106
  when Array
103
107
  value.map { |v| transform_parsed(v) }
104
108
  else
@@ -1,10 +1,6 @@
1
- require "gds_api/test_helpers/alias_deprecated"
2
-
3
1
  module GdsApi
4
2
  module TestHelpers
5
3
  module AssetManager
6
- extend AliasDeprecated
7
-
8
4
  ASSET_MANAGER_ENDPOINT = Plek.current.find("asset-manager")
9
5
 
10
6
  def stub_any_asset_manager_call
@@ -107,19 +103,6 @@ module GdsApi
107
103
  def stub_asset_manager_delete_asset_failure(asset_id)
108
104
  stub_request(:delete, "#{ASSET_MANAGER_ENDPOINT}/assets/#{asset_id}").to_return(status: 500)
109
105
  end
110
-
111
- alias_deprecated :asset_manager_updates_any_asset, :stub_asset_manager_updates_any_asset
112
- alias_deprecated :asset_manager_deletes_any_asset, :stub_asset_manager_deletes_any_asset
113
- alias_deprecated :asset_manager_has_an_asset, :stub_asset_manager_has_an_asset
114
- alias_deprecated :asset_manager_has_a_whitehall_asset, :stub_asset_manager_has_a_whitehall_asset
115
- alias_deprecated :asset_manager_does_not_have_an_asset, :stub_asset_manager_does_not_have_an_asset
116
- alias_deprecated :asset_manager_does_not_have_a_whitehall_asset, :stub_asset_manager_does_not_have_a_whitehall_asset
117
- alias_deprecated :asset_manager_receives_an_asset, :stub_asset_manager_receives_an_asset
118
- alias_deprecated :asset_manager_upload_failure, :stub_asset_manager_upload_failure
119
- alias_deprecated :asset_manager_update_asset, :stub_asset_manager_update_asset
120
- alias_deprecated :asset_manager_update_failure, :stub_asset_manager_update_asset_failure
121
- alias_deprecated :asset_manager_delete_asset, :stub_asset_manager_delete_asset
122
- alias_deprecated :asset_manager_delete_failure, :stub_asset_manager_delete_asset_failure
123
106
  end
124
107
  end
125
108
  end
@@ -1,10 +1,6 @@
1
- require "gds_api/test_helpers/alias_deprecated"
2
-
3
1
  module GdsApi
4
2
  module TestHelpers
5
3
  module Calendars
6
- extend AliasDeprecated
7
-
8
4
  def calendars_endpoint(in_division: nil)
9
5
  endpoint = "#{Plek.new.website_root}/bank-holidays"
10
6
  endpoint += "/#{in_division}" unless in_division.nil?
@@ -55,11 +51,6 @@ module GdsApi
55
51
  def stub_calendars_has_a_bank_holiday_on(date, in_division: nil)
56
52
  stub_calendars_has_bank_holidays_on([date], in_division: in_division)
57
53
  end
58
-
59
- # Aliases for DEPRECATED methods
60
- alias_deprecated :calendars_has_no_bank_holidays, :stub_calendars_has_no_bank_holidays
61
- alias_deprecated :calendars_has_bank_holidays_on, :stub_calendars_has_bank_holidays_on
62
- alias_deprecated :calendars_has_a_bank_holiday_on, :stub_calendars_has_a_bank_holiday_on
63
54
  end
64
55
  end
65
56
  end
@@ -1,4 +1,3 @@
1
- require "gds_api/test_helpers/alias_deprecated"
2
1
  require "gds_api/test_helpers/json_client_helper"
3
2
  require "gds_api/test_helpers/content_item_helpers"
4
3
  require "json"
@@ -6,7 +5,6 @@ require "json"
6
5
  module GdsApi
7
6
  module TestHelpers
8
7
  module ContentStore
9
- extend AliasDeprecated
10
8
  include ContentItemHelpers
11
9
 
12
10
  def content_store_endpoint(draft = false)
@@ -93,13 +91,6 @@ module GdsApi
93
91
 
94
92
  stub_request(:get, url).to_return(body: body)
95
93
  end
96
-
97
- # Aliases for DEPRECATED methods
98
- alias_deprecated :content_store_has_item, :stub_content_store_has_item
99
- alias_deprecated :content_store_does_not_have_item, :stub_content_store_does_not_have_item
100
- alias_deprecated :content_store_has_gone_item, :stub_content_store_has_gone_item
101
- alias_deprecated :content_store_isnt_available, :stub_content_store_isnt_available
102
- alias_deprecated :content_store_has_incoming_links, :stub_content_store_has_incoming_links
103
94
  end
104
95
  end
105
96
  end
@@ -83,12 +83,12 @@ module GdsApi
83
83
  # stub_email_alert_api_has_subscriptions([
84
84
  # {
85
85
  # id: 'id-of-my-subscriber-list',
86
- #  frequency: 'weekly',
86
+ # frequency: 'weekly',
87
87
  # ended: true,
88
88
  # },
89
89
  # {
90
90
  # id: 'id-of-my-subscriber-list',
91
- #  frequency: 'daily',
91
+ # frequency: 'daily',
92
92
  # },
93
93
  # ])
94
94
  #
@@ -176,7 +176,7 @@ module GdsApi
176
176
 
177
177
  def assert_email_alert_api_content_change_created(attributes = nil)
178
178
  if attributes
179
- matcher = ->(request) do
179
+ matcher = lambda do |request|
180
180
  payload = JSON.parse(request.body)
181
181
  payload.select { |k, _| attributes.key?(k) } == attributes
182
182
  end
@@ -187,7 +187,7 @@ module GdsApi
187
187
 
188
188
  def assert_email_alert_api_message_created(attributes = nil)
189
189
  if attributes
190
- matcher = ->(request) do
190
+ matcher = lambda do |request|
191
191
  payload = JSON.parse(request.body)
192
192
  payload.select { |k, _| attributes.key?(k) } == attributes
193
193
  end
@@ -222,21 +222,21 @@ module GdsApi
222
222
  stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriptions")
223
223
  .with(
224
224
  body: { subscriber_list_id: subscriber_list_id, address: address, frequency: frequency }.to_json,
225
- ).to_return(status: 201, body: { subscription_id: returned_subscription_id }.to_json)
225
+ ).to_return(status: 201, body: { subscription_id: returned_subscription_id }.to_json)
226
226
  end
227
227
 
228
228
  def stub_email_alert_api_creates_an_existing_subscription(subscriber_list_id, address, frequency, returned_subscription_id)
229
229
  stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriptions")
230
230
  .with(
231
231
  body: { subscriber_list_id: subscriber_list_id, address: address, frequency: frequency }.to_json,
232
- ).to_return(status: 200, body: { subscription_id: returned_subscription_id }.to_json)
232
+ ).to_return(status: 200, body: { subscription_id: returned_subscription_id }.to_json)
233
233
  end
234
234
 
235
235
  def stub_email_alert_api_refuses_to_create_subscription(subscriber_list_id, address, frequency)
236
236
  stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriptions")
237
237
  .with(
238
238
  body: { subscriber_list_id: subscriber_list_id, address: address, frequency: frequency }.to_json,
239
- ).to_return(status: 422)
239
+ ).to_return(status: 422)
240
240
  end
241
241
 
242
242
  def stub_email_alert_api_sends_subscription_verification_email(address, frequency, topic_id)
@@ -292,7 +292,7 @@ module GdsApi
292
292
  body: {
293
293
  subscriber_list: returned_attributes,
294
294
  }.to_json,
295
- )
295
+ )
296
296
  end
297
297
 
298
298
  def stub_email_alert_api_does_not_have_subscriber_list_by_slug(slug:)
@@ -300,30 +300,6 @@ module GdsApi
300
300
  .to_return(status: 404)
301
301
  end
302
302
 
303
- # Aliases for DEPRECATED methods
304
- alias_method :email_alert_api_has_updated_subscriber, :stub_email_alert_api_has_updated_subscriber
305
- alias_method :email_alert_api_does_not_have_updated_subscriber, :stub_email_alert_api_does_not_have_updated_subscriber
306
- alias_method :email_alert_api_has_updated_subscription, :stub_email_alert_api_has_updated_subscription
307
- alias_method :email_alert_api_does_not_have_updated_subscription, :stub_email_alert_api_does_not_have_updated_subscription
308
- alias_method :email_alert_api_has_subscriber_subscriptions, :stub_email_alert_api_has_subscriber_subscriptions
309
- alias_method :email_alert_api_does_not_have_subscriber_subscriptions, :stub_email_alert_api_does_not_have_subscriber_subscriptions
310
- alias_method :email_alert_api_has_subscription, :stub_email_alert_api_has_subscription
311
- alias_method :email_alert_api_has_subscriptions, :stub_email_alert_api_has_subscriptions
312
- alias_method :email_alert_api_has_subscriber_list, :stub_email_alert_api_has_subscriber_list
313
- alias_method :email_alert_api_does_not_have_subscriber_list, :stub_email_alert_api_does_not_have_subscriber_list
314
- alias_method :email_alert_api_creates_subscriber_list, :stub_email_alert_api_creates_subscriber_list
315
- alias_method :email_alert_api_refuses_to_create_subscriber_list, :stub_email_alert_api_refuses_to_create_subscriber_list
316
- alias_method :email_alert_api_accepts_unpublishing_message, :stub_email_alert_api_accepts_unpublishing_message
317
- alias_method :email_alert_api_unsubscribes_a_subscription, :stub_email_alert_api_unsubscribes_a_subscription
318
- alias_method :email_alert_api_has_no_subscription_for_uuid, :stub_email_alert_api_has_no_subscription_for_uuid
319
- alias_method :email_alert_api_unsubscribes_a_subscriber, :stub_email_alert_api_unsubscribes_a_subscriber
320
- alias_method :email_alert_api_has_no_subscriber, :stub_email_alert_api_has_no_subscriber
321
- alias_method :email_alert_api_creates_a_subscription, :stub_email_alert_api_creates_a_subscription
322
- alias_method :email_alert_api_creates_an_existing_subscription, :stub_email_alert_api_creates_an_existing_subscription
323
- alias_method :email_alert_api_refuses_to_create_subscription, :stub_email_alert_api_refuses_to_create_subscription
324
- alias_method :email_alert_api_has_subscriber_list_by_slug, :stub_email_alert_api_has_subscriber_list_by_slug
325
- alias_method :email_alert_api_does_not_have_subscriber_list_by_slug, :stub_email_alert_api_does_not_have_subscriber_list_by_slug
326
-
327
303
  private
328
304
 
329
305
  def get_subscriber_response(id, address)