gds-api-adapters 67.0.0 → 67.0.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 +4 -4
- data/lib/gds_api.rb +2 -0
- data/lib/gds_api/asset_manager.rb +1 -1
- data/lib/gds_api/base.rb +4 -0
- data/lib/gds_api/email_alert_api.rb +9 -9
- data/lib/gds_api/imminence.rb +1 -1
- data/lib/gds_api/response.rb +72 -2
- data/lib/gds_api/test_helpers/email_alert_api.rb +1 -1
- data/lib/gds_api/version.rb +1 -1
- metadata +13 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 98cbc4b338641aff5589875074e2fb2d6ef4227a004f04855cfffbf9c0eb5348
|
4
|
+
data.tar.gz: 5934de7d813457a5cf01c026ff91bed99445492a43df9c9704abc123db140c7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 00bab1a4b50de5937794758bbdca11c093d3d58c147fed73cb1c3ad89c0c1a9c8d4e2cac2691a31540d9d5c1f92de9a413c25b339a1430dbc367e7f5649afe08
|
7
|
+
data.tar.gz: 14a690b77a277f543b800d48da87cac0c78e6edaf2ced0e04a5f9244104707b3f3cf34e77f9cba0cd39e3fca0c53a2672659a17b00611d575d28c43bd25d236b
|
data/lib/gds_api.rb
CHANGED
@@ -136,7 +136,7 @@ class GdsApi::AssetManager < GdsApi::Base
|
|
136
136
|
#
|
137
137
|
# @raise [HTTPErrorResponse] if the request returns an error
|
138
138
|
def whitehall_asset(legacy_url_path)
|
139
|
-
get_json("#{base_url}/whitehall_assets/#{
|
139
|
+
get_json("#{base_url}/whitehall_assets/#{uri_encode(legacy_url_path)}")
|
140
140
|
end
|
141
141
|
|
142
142
|
# Updates an asset given a hash with one +file+ attribute
|
data/lib/gds_api/base.rb
CHANGED
@@ -101,7 +101,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
101
101
|
#
|
102
102
|
# @return [nil]
|
103
103
|
def unsubscribe(uuid)
|
104
|
-
post_json("#{endpoint}/unsubscribe/#{uuid}")
|
104
|
+
post_json("#{endpoint}/unsubscribe/#{uri_encode(uuid)}")
|
105
105
|
end
|
106
106
|
|
107
107
|
# Unsubscribe subscriber from everything
|
@@ -110,7 +110,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
110
110
|
#
|
111
111
|
# @return [nil]
|
112
112
|
def unsubscribe_subscriber(id)
|
113
|
-
delete_json("#{endpoint}/subscribers/#{id}")
|
113
|
+
delete_json("#{endpoint}/subscribers/#{uri_encode(id)}")
|
114
114
|
end
|
115
115
|
|
116
116
|
# Subscribe
|
@@ -141,7 +141,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
141
141
|
# subscriber_count
|
142
142
|
# }
|
143
143
|
def get_subscriber_list(slug:)
|
144
|
-
get_json("#{endpoint}/subscriber-lists/#{slug}")
|
144
|
+
get_json("#{endpoint}/subscriber-lists/#{uri_encode(slug)}")
|
145
145
|
end
|
146
146
|
|
147
147
|
# Get a Subscription
|
@@ -158,7 +158,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
158
158
|
# source
|
159
159
|
# }
|
160
160
|
def get_subscription(id)
|
161
|
-
get_json("#{endpoint}/subscriptions/#{id}")
|
161
|
+
get_json("#{endpoint}/subscriptions/#{uri_encode(id)}")
|
162
162
|
end
|
163
163
|
|
164
164
|
# Get the latest Subscription that has the same subscriber_list
|
@@ -177,7 +177,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
177
177
|
# source
|
178
178
|
# }
|
179
179
|
def get_latest_matching_subscription(id)
|
180
|
-
get_json("#{endpoint}/subscriptions/#{id}/latest")
|
180
|
+
get_json("#{endpoint}/subscriptions/#{uri_encode(id)}/latest")
|
181
181
|
end
|
182
182
|
|
183
183
|
# Get Subscriptions for a Subscriber
|
@@ -188,9 +188,9 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
188
188
|
# @return [Hash] subscriber, subscriptions
|
189
189
|
def get_subscriptions(id:, order: nil)
|
190
190
|
if order
|
191
|
-
get_json("#{endpoint}/subscribers/#{id}/subscriptions?order=#{order}")
|
191
|
+
get_json("#{endpoint}/subscribers/#{uri_encode(id)}/subscriptions?order=#{uri_encode(order)}")
|
192
192
|
else
|
193
|
-
get_json("#{endpoint}/subscribers/#{id}/subscriptions")
|
193
|
+
get_json("#{endpoint}/subscribers/#{uri_encode(id)}/subscriptions")
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -202,7 +202,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
202
202
|
# @return [Hash] subscriber
|
203
203
|
def change_subscriber(id:, new_address:)
|
204
204
|
patch_json(
|
205
|
-
"#{endpoint}/subscribers/#{id}",
|
205
|
+
"#{endpoint}/subscribers/#{uri_encode(id)}",
|
206
206
|
new_address: new_address,
|
207
207
|
)
|
208
208
|
end
|
@@ -215,7 +215,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
215
215
|
# @return [Hash] subscription
|
216
216
|
def change_subscription(id:, frequency:)
|
217
217
|
patch_json(
|
218
|
-
"#{endpoint}/subscriptions/#{id}",
|
218
|
+
"#{endpoint}/subscriptions/#{uri_encode(id)}",
|
219
219
|
frequency: frequency,
|
220
220
|
)
|
221
221
|
end
|
data/lib/gds_api/imminence.rb
CHANGED
data/lib/gds_api/response.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require "json"
|
2
2
|
require "forwardable"
|
3
|
-
require "rack/cache"
|
4
3
|
|
5
4
|
module GdsApi
|
6
5
|
# This wraps an HTTP response with a JSON body.
|
@@ -21,6 +20,77 @@ module GdsApi
|
|
21
20
|
extend Forwardable
|
22
21
|
include Enumerable
|
23
22
|
|
23
|
+
class CacheControl < Hash
|
24
|
+
PATTERN = /([-a-z]+)(?:\s*=\s*([^,\s]+))?,?+/i.freeze
|
25
|
+
|
26
|
+
def initialize(value = nil)
|
27
|
+
parse(value)
|
28
|
+
end
|
29
|
+
|
30
|
+
def public?
|
31
|
+
self["public"]
|
32
|
+
end
|
33
|
+
|
34
|
+
def private?
|
35
|
+
self["private"]
|
36
|
+
end
|
37
|
+
|
38
|
+
def no_cache?
|
39
|
+
self["no-cache"]
|
40
|
+
end
|
41
|
+
|
42
|
+
def no_store?
|
43
|
+
self["no-store"]
|
44
|
+
end
|
45
|
+
|
46
|
+
def must_revalidate?
|
47
|
+
self["must-revalidate"]
|
48
|
+
end
|
49
|
+
|
50
|
+
def proxy_revalidate?
|
51
|
+
self["proxy-revalidate"]
|
52
|
+
end
|
53
|
+
|
54
|
+
def max_age
|
55
|
+
self["max-age"].to_i if key?("max-age")
|
56
|
+
end
|
57
|
+
|
58
|
+
def reverse_max_age
|
59
|
+
self["r-maxage"].to_i if key?("r-maxage")
|
60
|
+
end
|
61
|
+
alias_method :r_maxage, :reverse_max_age
|
62
|
+
|
63
|
+
def shared_max_age
|
64
|
+
self["s-maxage"].to_i if key?("r-maxage")
|
65
|
+
end
|
66
|
+
alias_method :s_maxage, :shared_max_age
|
67
|
+
|
68
|
+
def to_s
|
69
|
+
directives = []
|
70
|
+
values = []
|
71
|
+
|
72
|
+
each do |key, value|
|
73
|
+
if value == true
|
74
|
+
directives << key
|
75
|
+
elsif value
|
76
|
+
values << "#{key}=#{value}"
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
(directives.sort + values.sort).join(", ")
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def parse(header)
|
86
|
+
return if header.nil? || header.empty?
|
87
|
+
|
88
|
+
header.scan(PATTERN).each do |name, value|
|
89
|
+
self[name.downcase] = value || true
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
24
94
|
def_delegators :to_hash, :[], :"<=>", :each, :dig
|
25
95
|
|
26
96
|
def initialize(http_response, options = {})
|
@@ -63,7 +133,7 @@ module GdsApi
|
|
63
133
|
end
|
64
134
|
|
65
135
|
def cache_control
|
66
|
-
@cache_control ||=
|
136
|
+
@cache_control ||= CacheControl.new(headers[:cache_control])
|
67
137
|
end
|
68
138
|
|
69
139
|
def to_hash
|
@@ -324,7 +324,7 @@ module GdsApi
|
|
324
324
|
"id" => id,
|
325
325
|
"frequency" => frequency,
|
326
326
|
"source" => "user_signed_up",
|
327
|
-
"ended_at" => ended ? Time.now.
|
327
|
+
"ended_at" => ended ? Time.now.iso8601 : nil,
|
328
328
|
"ended_reason" => ended ? "unsubscribed" : nil,
|
329
329
|
"subscriber" => {
|
330
330
|
"id" => subscriber_id,
|
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: 67.0.
|
4
|
+
version: 67.0.1
|
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-07-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: 1.9.0
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rack-cache
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: rest-client
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,14 +142,14 @@ dependencies:
|
|
156
142
|
requirements:
|
157
143
|
- - "~>"
|
158
144
|
- !ruby/object:Gem::Version
|
159
|
-
version: '1.
|
145
|
+
version: '1.11'
|
160
146
|
type: :development
|
161
147
|
prerelease: false
|
162
148
|
version_requirements: !ruby/object:Gem::Requirement
|
163
149
|
requirements:
|
164
150
|
- - "~>"
|
165
151
|
- !ruby/object:Gem::Version
|
166
|
-
version: '1.
|
152
|
+
version: '1.11'
|
167
153
|
- !ruby/object:Gem::Dependency
|
168
154
|
name: pact
|
169
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -179,47 +165,47 @@ dependencies:
|
|
179
165
|
- !ruby/object:Gem::Version
|
180
166
|
version: '1.20'
|
181
167
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
168
|
+
name: pact_broker-client
|
183
169
|
requirement: !ruby/object:Gem::Requirement
|
184
170
|
requirements:
|
185
171
|
- - "~>"
|
186
172
|
- !ruby/object:Gem::Version
|
187
|
-
version: '1.
|
173
|
+
version: '1.14'
|
188
174
|
type: :development
|
189
175
|
prerelease: false
|
190
176
|
version_requirements: !ruby/object:Gem::Requirement
|
191
177
|
requirements:
|
192
178
|
- - "~>"
|
193
179
|
- !ruby/object:Gem::Version
|
194
|
-
version: '1.
|
180
|
+
version: '1.14'
|
195
181
|
- !ruby/object:Gem::Dependency
|
196
|
-
name: pact-
|
182
|
+
name: pact-consumer-minitest
|
197
183
|
requirement: !ruby/object:Gem::Requirement
|
198
184
|
requirements:
|
199
185
|
- - "~>"
|
200
186
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
187
|
+
version: '1.0'
|
202
188
|
type: :development
|
203
189
|
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - "~>"
|
207
193
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
194
|
+
version: '1.0'
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
196
|
+
name: pact-mock_service
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
212
198
|
requirements:
|
213
199
|
- - "~>"
|
214
200
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
201
|
+
version: '2.6'
|
216
202
|
type: :development
|
217
203
|
prerelease: false
|
218
204
|
version_requirements: !ruby/object:Gem::Requirement
|
219
205
|
requirements:
|
220
206
|
- - "~>"
|
221
207
|
- !ruby/object:Gem::Version
|
222
|
-
version: '
|
208
|
+
version: '2.6'
|
223
209
|
- !ruby/object:Gem::Dependency
|
224
210
|
name: pry
|
225
211
|
requirement: !ruby/object:Gem::Requirement
|