gds-api-adapters 63.5.1 → 63.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -23
- data/Rakefile +4 -4
- data/lib/gds_api/exceptions.rb +3 -4
- data/lib/gds_api/json_client.rb +2 -2
- data/lib/gds_api/test_helpers/publishing_api.rb +10 -10
- data/lib/gds_api/test_helpers/search.rb +5 -5
- data/lib/gds_api/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c63bd76ee4646694f763c71980fcce76ae359bfd12ad2de8437679eb0f389422
|
4
|
+
data.tar.gz: 5729acfdc3d52d7fd1c7e053a7740bc09424006088e6ce0631fed2144479e267
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7676cf189a66b0b699c08ae50605a4f481da8b775201876e641167b49d7a6fc33a2139c97f4b7d0801af335e3c32929afc7bb8c6cc562cd2999c889f7603f5c3
|
7
|
+
data.tar.gz: 2c9f91be586e98a61e91dccf0c8bb66a9db31d1bbac59eccabf13e7fc8689f169126907d15a50ad483cb5605934240438ce5e2fbd97243511718be2278e7c359
|
data/README.md
CHANGED
@@ -5,9 +5,8 @@ A set of API adapters to work with the GDS APIs.
|
|
5
5
|
Example usage:
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
require 'gds_api/
|
9
|
-
|
10
|
-
results = search.search(q: "taxes")
|
8
|
+
require 'gds_api/publishing_api'
|
9
|
+
GdsApi.publishing_api.get_content("f3bbdec2-0e62-4520-a7fd-6ffd5d36e03a")
|
11
10
|
```
|
12
11
|
|
13
12
|
Example adapters for frequently used applications:
|
@@ -39,12 +38,11 @@ GdsApi::Base.logger = Logger.new("/path/to/file.log")
|
|
39
38
|
## Setting the timeout
|
40
39
|
|
41
40
|
By default the JsonClient timeout is set to 4 seconds. If this is exceeded a
|
42
|
-
`GdsApi::TimedOutException` will be raised.
|
43
|
-
override this timeout. Alternatively, you can override this in the application
|
41
|
+
`GdsApi::TimedOutException` will be raised. You can override this by doing:
|
44
42
|
that uses the adapter with:
|
45
43
|
|
46
44
|
```ruby
|
47
|
-
|
45
|
+
adapter = GdsApi.publishing_api(timeout: <number_of_seconds>)
|
48
46
|
```
|
49
47
|
|
50
48
|
In most cases, there is an upper-limit of 30 seconds imposed by the app server
|
@@ -85,23 +83,6 @@ There are also test helpers for stubbing various requests in other apps.
|
|
85
83
|
|
86
84
|
See [all the test helpers in lib/gds_api/test_helpers](/lib/gds_api/test_helpers).
|
87
85
|
|
88
|
-
### Dependencies
|
89
|
-
|
90
|
-
Some of the helpers come with additional dependencies that you'll need to
|
91
|
-
have installed and configured in your consuming app/lib.
|
92
|
-
|
93
|
-
At time of writing, these are:
|
94
|
-
|
95
|
-
* [WebMock](https://github.com/bblimke/webmock)
|
96
|
-
|
97
|
-
### Documentation
|
98
|
-
|
99
|
-
See [RubyDoc](http://www.rubydoc.info/gems/gds-api-adapters) for some limited documentation.
|
100
|
-
|
101
|
-
To run a Yard server locally to preview documentation, run:
|
102
|
-
|
103
|
-
$ bundle exec yard server --reload
|
104
|
-
|
105
86
|
## Licence
|
106
87
|
|
107
88
|
Released under the MIT Licence, a copy of which can be found in the file
|
data/Rakefile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
require "rdoc/task"
|
4
|
-
require
|
4
|
+
require "rake/testtask"
|
5
5
|
|
6
6
|
RDoc::Task.new do |rd|
|
7
7
|
rd.rdoc_files.include("lib/**/*.rb")
|
@@ -15,12 +15,12 @@ Rake::TestTask.new("test") do |t|
|
|
15
15
|
end
|
16
16
|
task default: :test
|
17
17
|
|
18
|
-
require
|
18
|
+
require "pact_broker/client/tasks"
|
19
19
|
|
20
20
|
def configure_pact_broker_location(task)
|
21
21
|
task.pact_broker_base_url = ENV.fetch("PACT_BROKER_BASE_URL")
|
22
|
-
if ENV[
|
23
|
-
task.pact_broker_basic_auth = { username: ENV[
|
22
|
+
if ENV["PACT_BROKER_USERNAME"]
|
23
|
+
task.pact_broker_basic_auth = { username: ENV["PACT_BROKER_USERNAME"], password: ENV["PACT_BROKER_PASSWORD"] }
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
data/lib/gds_api/exceptions.rb
CHANGED
@@ -22,11 +22,10 @@ module GdsApi
|
|
22
22
|
class HTTPErrorResponse < BaseError
|
23
23
|
attr_accessor :code, :error_details
|
24
24
|
|
25
|
-
def initialize(code, message = nil, error_details = nil
|
25
|
+
def initialize(code, message = nil, error_details = nil)
|
26
26
|
super(message)
|
27
27
|
@code = code
|
28
28
|
@error_details = error_details
|
29
|
-
@request_body = request_body
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
@@ -53,8 +52,8 @@ module GdsApi
|
|
53
52
|
class HTTPGatewayTimeout < HTTPIntermittentServerError; end
|
54
53
|
|
55
54
|
module ExceptionHandling
|
56
|
-
def build_specific_http_error(error, url, details = nil
|
57
|
-
message = "URL: #{url}\nResponse body:\n#{error.http_body}
|
55
|
+
def build_specific_http_error(error, url, details = nil)
|
56
|
+
message = "URL: #{url}\nResponse body:\n#{error.http_body}"
|
58
57
|
code = error.http_code
|
59
58
|
error_class_for_code(code).new(code, message, details)
|
60
59
|
end
|
data/lib/gds_api/json_client.rb
CHANGED
@@ -83,7 +83,7 @@ module GdsApi
|
|
83
83
|
def do_raw_request(method, url, params = nil)
|
84
84
|
do_request(method, url, params)
|
85
85
|
rescue RestClient::Exception => e
|
86
|
-
raise build_specific_http_error(e, url, nil
|
86
|
+
raise build_specific_http_error(e, url, nil)
|
87
87
|
end
|
88
88
|
|
89
89
|
# method: the symbolic name of the method to use, e.g. :get, :post
|
@@ -105,7 +105,7 @@ module GdsApi
|
|
105
105
|
rescue JSON::ParserError
|
106
106
|
nil
|
107
107
|
end
|
108
|
-
raise build_specific_http_error(e, url, error_details
|
108
|
+
raise build_specific_http_error(e, url, error_details)
|
109
109
|
end
|
110
110
|
|
111
111
|
# If no custom response is given, just instantiate Response
|
@@ -266,11 +266,11 @@ module GdsApi
|
|
266
266
|
# @param attributes_or_matcher [Object]
|
267
267
|
# @param times [Integer]
|
268
268
|
def assert_publishing_api(verb, url, attributes_or_matcher = nil, times = 1)
|
269
|
-
if attributes_or_matcher.is_a?(Hash)
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
269
|
+
matcher = if attributes_or_matcher.is_a?(Hash)
|
270
|
+
request_json_matches(attributes_or_matcher)
|
271
|
+
else
|
272
|
+
attributes_or_matcher
|
273
|
+
end
|
274
274
|
|
275
275
|
if matcher
|
276
276
|
assert_requested(verb, url, times: times, &matcher)
|
@@ -684,11 +684,11 @@ module GdsApi
|
|
684
684
|
end
|
685
685
|
|
686
686
|
def assert_publishing_api_put(url, attributes_or_matcher = {}, times = 1)
|
687
|
-
if attributes_or_matcher.is_a?(Hash)
|
688
|
-
|
689
|
-
|
690
|
-
|
691
|
-
|
687
|
+
matcher = if attributes_or_matcher.is_a?(Hash)
|
688
|
+
attributes_or_matcher.empty? ? nil : request_json_matching(attributes_or_matcher)
|
689
|
+
else
|
690
|
+
attributes_or_matcher
|
691
|
+
end
|
692
692
|
|
693
693
|
if matcher
|
694
694
|
assert_requested(:put, url, times: times, &matcher)
|
@@ -17,11 +17,11 @@ module GdsApi
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def assert_search_posted_item(attributes, index: nil, **options)
|
20
|
-
if index
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
url = if index
|
21
|
+
SEARCH_ENDPOINT + "/#{index}/documents"
|
22
|
+
else
|
23
|
+
SEARCH_ENDPOINT + "/documents"
|
24
|
+
end
|
25
25
|
|
26
26
|
assert_requested(:post, url, **options) do |req|
|
27
27
|
data = JSON.parse(req.body)
|
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: 63.
|
4
|
+
version: 63.6.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: 2020-
|
11
|
+
date: 2020-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -457,7 +457,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
457
457
|
requirements:
|
458
458
|
- - ">="
|
459
459
|
- !ruby/object:Gem::Version
|
460
|
-
version: 2.
|
460
|
+
version: 2.4.0
|
461
461
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
462
462
|
requirements:
|
463
463
|
- - ">="
|