gds-api-adapters 52.1.0 → 52.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gds_api/base.rb +1 -1
- data/lib/gds_api/email_alert_api.rb +52 -2
- data/lib/gds_api/imminence.rb +1 -1
- data/lib/gds_api/test_helpers/email_alert_api.rb +104 -2
- data/lib/gds_api/version.rb +1 -1
- metadata +22 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6336130268f19fee00d05ba2a6332da8a534f4b94fbc5eb52d774a117305b9f9
|
4
|
+
data.tar.gz: 7e6596cb403f449a386f9e08b80b4ccc253c0efb4d7e465d13de5ec955711406
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8c4700994a3894fe6c3a2e6d97902c084afad6302e12cc211d3cf12febd27248ff7718f33a1e54a3fdc1c7bb640807804fcf8bdff55aa8bb7644833cb92dde2
|
7
|
+
data.tar.gz: 99396abbb0adc97095c80ccbceaea467be35b59df0ddd8ec260ceae32fcb4e06a0640c6b87d76229246a0d53dcaff06a19342120d3ca6958ebd95b3b76f31124
|
data/lib/gds_api/base.rb
CHANGED
@@ -41,7 +41,7 @@ class GdsApi::Base
|
|
41
41
|
|
42
42
|
def initialize(endpoint_url, options = {})
|
43
43
|
options[:endpoint_url] = endpoint_url
|
44
|
-
raise InvalidAPIURL unless endpoint_url =~ URI::
|
44
|
+
raise InvalidAPIURL unless endpoint_url =~ URI::RFC3986_Parser::RFC3986_URI
|
45
45
|
base_options = { logger: self.class.logger }
|
46
46
|
default_options = base_options.merge(GdsApi::Base.default_options || {})
|
47
47
|
@options = default_options.merge(options)
|
@@ -105,8 +105,58 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
105
105
|
# subscriber_count
|
106
106
|
# }
|
107
107
|
def get_subscribable(reference:)
|
108
|
-
get_json(
|
109
|
-
|
108
|
+
get_json("#{endpoint}/subscribables/#{reference}")
|
109
|
+
end
|
110
|
+
|
111
|
+
# Get a Subscription
|
112
|
+
#
|
113
|
+
# @return [Hash] subscription: {
|
114
|
+
# id
|
115
|
+
# subscriber_list
|
116
|
+
# subscriber
|
117
|
+
# created_at
|
118
|
+
# updated_at
|
119
|
+
# ended_at
|
120
|
+
# ended_reason
|
121
|
+
# frequency
|
122
|
+
# source
|
123
|
+
# }
|
124
|
+
def get_subscription(id)
|
125
|
+
get_json("#{endpoint}/subscriptions/#{id}")
|
126
|
+
end
|
127
|
+
|
128
|
+
# Get Subscriptions for a Subscriber
|
129
|
+
# #
|
130
|
+
# @param string Subscriber address
|
131
|
+
#
|
132
|
+
# @return [Hash] subscriber, subscriptions
|
133
|
+
def get_subscriptions(address:)
|
134
|
+
get_json("#{endpoint}/subscribers/#{address}/subscriptions")
|
135
|
+
end
|
136
|
+
|
137
|
+
# Patch a Subscriber
|
138
|
+
# #
|
139
|
+
# @param string Subscriber address
|
140
|
+
# @param string Subscriber new_address
|
141
|
+
#
|
142
|
+
# @return [Hash] subscriber
|
143
|
+
def change_subscriber(address:, new_address:)
|
144
|
+
patch_json(
|
145
|
+
"#{endpoint}/subscribers/#{address}",
|
146
|
+
new_address: new_address
|
147
|
+
)
|
148
|
+
end
|
149
|
+
|
150
|
+
# Patch a Subscription
|
151
|
+
# #
|
152
|
+
# @param string Subscription id
|
153
|
+
# @param string Subscription frequency
|
154
|
+
#
|
155
|
+
# @return [Hash] subscription
|
156
|
+
def change_subscription(id:, frequency:)
|
157
|
+
patch_json(
|
158
|
+
"#{endpoint}/subscriptions/#{id}",
|
159
|
+
frequency: frequency
|
110
160
|
)
|
111
161
|
end
|
112
162
|
|
data/lib/gds_api/imminence.rb
CHANGED
@@ -6,6 +6,53 @@ module GdsApi
|
|
6
6
|
module EmailAlertApi
|
7
7
|
EMAIL_ALERT_API_ENDPOINT = Plek.find("email-alert-api")
|
8
8
|
|
9
|
+
def email_alert_api_has_updated_subscriber(old_address, new_address)
|
10
|
+
stub_request(:patch, subscriber_url(old_address))
|
11
|
+
.to_return(
|
12
|
+
status: 200,
|
13
|
+
body: get_subscriber_response(new_address).to_json,
|
14
|
+
)
|
15
|
+
end
|
16
|
+
|
17
|
+
def email_alert_api_does_not_have_updated_subscriber(address)
|
18
|
+
stub_request(:patch, subscriber_url(address))
|
19
|
+
.to_return(status: 404)
|
20
|
+
end
|
21
|
+
|
22
|
+
def email_alert_api_has_updated_subscription(subscription_id, frequency)
|
23
|
+
stub_request(:patch, subscription_url(subscription_id))
|
24
|
+
.to_return(
|
25
|
+
status: 200,
|
26
|
+
body: get_subscription_response(subscription_id, frequency).to_json,
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
def email_alert_api_does_not_have_updated_subscription(subscription_id)
|
31
|
+
stub_request(:patch, subscription_url(subscription_id))
|
32
|
+
.to_return(status: 404)
|
33
|
+
end
|
34
|
+
|
35
|
+
def email_alert_api_has_subscriber_subscriptions(address)
|
36
|
+
stub_request(:get, subscriber_subscriptions_url(address))
|
37
|
+
.to_return(
|
38
|
+
status: 200,
|
39
|
+
body: get_subscriber_subscriptions_response(address).to_json,
|
40
|
+
)
|
41
|
+
end
|
42
|
+
|
43
|
+
def email_alert_api_does_not_have_subscriber_subscriptions(address)
|
44
|
+
stub_request(:get, subscriber_subscriptions_url(address))
|
45
|
+
.to_return(status: 404)
|
46
|
+
end
|
47
|
+
|
48
|
+
def email_alert_api_has_subscription(id, frequency)
|
49
|
+
stub_request(:get, subscription_url(id))
|
50
|
+
.to_return(
|
51
|
+
status: 200,
|
52
|
+
body: get_subscription_response(id, frequency).to_json,
|
53
|
+
)
|
54
|
+
end
|
55
|
+
|
9
56
|
def email_alert_api_has_subscriber_list(attributes)
|
10
57
|
stub_request(:get, subscriber_lists_url(attributes))
|
11
58
|
.to_return(
|
@@ -34,12 +81,55 @@ module GdsApi
|
|
34
81
|
)
|
35
82
|
end
|
36
83
|
|
84
|
+
def get_subscriber_response(address)
|
85
|
+
{
|
86
|
+
"subscriber" => {
|
87
|
+
"id" => 1,
|
88
|
+
"address" => address
|
89
|
+
}
|
90
|
+
}
|
91
|
+
end
|
92
|
+
|
93
|
+
def get_subscription_response(subscription_id, frequency)
|
94
|
+
{
|
95
|
+
"subscription" => {
|
96
|
+
"subscriber_id" => 1,
|
97
|
+
"subscriber_list_id" => 1000,
|
98
|
+
"frequency" => frequency,
|
99
|
+
"id" => subscription_id,
|
100
|
+
"subscriber_list" => {
|
101
|
+
"id" => 1000,
|
102
|
+
"slug" => "some-thing"
|
103
|
+
}
|
104
|
+
}
|
105
|
+
}
|
106
|
+
end
|
107
|
+
|
108
|
+
def get_subscriber_subscriptions_response(address)
|
109
|
+
{
|
110
|
+
"subscriber" => {
|
111
|
+
"id" => 1,
|
112
|
+
"address" => address
|
113
|
+
},
|
114
|
+
"subscriptions" => [
|
115
|
+
{
|
116
|
+
"subscriber_id" => 1,
|
117
|
+
"subscriber_list_id" => 1000,
|
118
|
+
"frequency" => "daily",
|
119
|
+
"id" => "447135c3-07d6-4c3a-8a3b-efa49ef70e52",
|
120
|
+
"subscriber_list" => {
|
121
|
+
"id" => 1000,
|
122
|
+
"slug" => "some-thing"
|
123
|
+
}
|
124
|
+
}
|
125
|
+
]
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
37
129
|
def get_subscriber_list_response(attributes)
|
38
130
|
{
|
39
131
|
"subscriber_list" => {
|
40
132
|
"id" => "447135c3-07d6-4c3a-8a3b-efa49ef70e52",
|
41
|
-
"subscription_url" => "https://stage-public.govdelivery.com/accounts/UKGOVUK/subscriber/new?topic_id=UKGOVUK_1234",
|
42
|
-
"gov_delivery_id" => "UKGOVUK_1234",
|
43
133
|
"title" => "Some title",
|
44
134
|
}.merge(attributes)
|
45
135
|
}
|
@@ -193,9 +283,21 @@ module GdsApi
|
|
193
283
|
EMAIL_ALERT_API_ENDPOINT + "/subscriptions"
|
194
284
|
end
|
195
285
|
|
286
|
+
def subscription_url(id)
|
287
|
+
EMAIL_ALERT_API_ENDPOINT + "/subscriptions/#{id}"
|
288
|
+
end
|
289
|
+
|
196
290
|
def subscribable_url(reference)
|
197
291
|
EMAIL_ALERT_API_ENDPOINT + "/subscribables/#{reference}"
|
198
292
|
end
|
293
|
+
|
294
|
+
def subscriber_url(address)
|
295
|
+
EMAIL_ALERT_API_ENDPOINT + "/subscribers/#{address}"
|
296
|
+
end
|
297
|
+
|
298
|
+
def subscriber_subscriptions_url(address)
|
299
|
+
EMAIL_ALERT_API_ENDPOINT + "/subscribers/#{address}/subscriptions"
|
300
|
+
end
|
199
301
|
end
|
200
302
|
end
|
201
303
|
end
|
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: 52.
|
4
|
+
version: 52.2.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: 2018-03-
|
11
|
+
date: 2018-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: plek
|
@@ -114,42 +114,42 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '1.
|
117
|
+
version: '1.6'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '1.
|
124
|
+
version: '1.6'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: govuk-lint
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: '3.
|
131
|
+
version: '3.7'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: '3.
|
138
|
+
version: '3.7'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: minitest
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '5.
|
145
|
+
version: '5.11'
|
146
146
|
type: :development
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '5.
|
152
|
+
version: '5.11'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: mocha
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +170,14 @@ dependencies:
|
|
170
170
|
requirements:
|
171
171
|
- - "~>"
|
172
172
|
- !ruby/object:Gem::Version
|
173
|
-
version: '1.
|
173
|
+
version: '1.20'
|
174
174
|
type: :development
|
175
175
|
prerelease: false
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
177
177
|
requirements:
|
178
178
|
- - "~>"
|
179
179
|
- !ruby/object:Gem::Version
|
180
|
-
version: '1.
|
180
|
+
version: '1.20'
|
181
181
|
- !ruby/object:Gem::Dependency
|
182
182
|
name: pact-consumer-minitest
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,14 +212,14 @@ dependencies:
|
|
212
212
|
requirements:
|
213
213
|
- - "~>"
|
214
214
|
- !ruby/object:Gem::Version
|
215
|
-
version: '1.
|
215
|
+
version: '1.14'
|
216
216
|
type: :development
|
217
217
|
prerelease: false
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
219
219
|
requirements:
|
220
220
|
- - "~>"
|
221
221
|
- !ruby/object:Gem::Version
|
222
|
-
version: '1.
|
222
|
+
version: '1.14'
|
223
223
|
- !ruby/object:Gem::Dependency
|
224
224
|
name: pry
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,14 +282,14 @@ dependencies:
|
|
282
282
|
requirements:
|
283
283
|
- - "~>"
|
284
284
|
- !ruby/object:Gem::Version
|
285
|
-
version: 0.
|
285
|
+
version: '0.16'
|
286
286
|
type: :development
|
287
287
|
prerelease: false
|
288
288
|
version_requirements: !ruby/object:Gem::Requirement
|
289
289
|
requirements:
|
290
290
|
- - "~>"
|
291
291
|
- !ruby/object:Gem::Version
|
292
|
-
version: 0.
|
292
|
+
version: '0.16'
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
294
|
name: simplecov-rcov
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
@@ -310,56 +310,56 @@ dependencies:
|
|
310
310
|
requirements:
|
311
311
|
- - "~>"
|
312
312
|
- !ruby/object:Gem::Version
|
313
|
-
version: 0.9
|
313
|
+
version: '0.9'
|
314
314
|
type: :development
|
315
315
|
prerelease: false
|
316
316
|
version_requirements: !ruby/object:Gem::Requirement
|
317
317
|
requirements:
|
318
318
|
- - "~>"
|
319
319
|
- !ruby/object:Gem::Version
|
320
|
-
version: 0.9
|
320
|
+
version: '0.9'
|
321
321
|
- !ruby/object:Gem::Dependency
|
322
322
|
name: webmock
|
323
323
|
requirement: !ruby/object:Gem::Requirement
|
324
324
|
requirements:
|
325
325
|
- - "~>"
|
326
326
|
- !ruby/object:Gem::Version
|
327
|
-
version: '3.
|
327
|
+
version: '3.3'
|
328
328
|
type: :development
|
329
329
|
prerelease: false
|
330
330
|
version_requirements: !ruby/object:Gem::Requirement
|
331
331
|
requirements:
|
332
332
|
- - "~>"
|
333
333
|
- !ruby/object:Gem::Version
|
334
|
-
version: '3.
|
334
|
+
version: '3.3'
|
335
335
|
- !ruby/object:Gem::Dependency
|
336
336
|
name: webrick
|
337
337
|
requirement: !ruby/object:Gem::Requirement
|
338
338
|
requirements:
|
339
339
|
- - "~>"
|
340
340
|
- !ruby/object:Gem::Version
|
341
|
-
version: '1.
|
341
|
+
version: '1.4'
|
342
342
|
type: :development
|
343
343
|
prerelease: false
|
344
344
|
version_requirements: !ruby/object:Gem::Requirement
|
345
345
|
requirements:
|
346
346
|
- - "~>"
|
347
347
|
- !ruby/object:Gem::Version
|
348
|
-
version: '1.
|
348
|
+
version: '1.4'
|
349
349
|
- !ruby/object:Gem::Dependency
|
350
350
|
name: yard
|
351
351
|
requirement: !ruby/object:Gem::Requirement
|
352
352
|
requirements:
|
353
353
|
- - "~>"
|
354
354
|
- !ruby/object:Gem::Version
|
355
|
-
version: 0.9
|
355
|
+
version: '0.9'
|
356
356
|
type: :development
|
357
357
|
prerelease: false
|
358
358
|
version_requirements: !ruby/object:Gem::Requirement
|
359
359
|
requirements:
|
360
360
|
- - "~>"
|
361
361
|
- !ruby/object:Gem::Version
|
362
|
-
version: 0.9
|
362
|
+
version: '0.9'
|
363
363
|
description: A set of adapters providing easy access to the GDS GOV.UK APIs
|
364
364
|
email:
|
365
365
|
- govuk-dev@digital.cabinet-office.gov.uk
|