gds-api-adapters 77.0.0 → 79.0.0
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/email_alert_api.rb +31 -0
- data/lib/gds_api/test_helpers/email_alert_api.rb +87 -0
- data/lib/gds_api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e10a938b3148397b6c9a4ff3a06a6105f4d07ad02a80b4103440cd065b92d4ba
|
4
|
+
data.tar.gz: e246e963aa42bcb62dc1479a076713ce4fefbcac40ca00e07b7f492a54396517
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2ee8e777bac9cbefe10b5497c5ec6cd48e4f7566cb07eff82bfa35a800c1fa28c99c3bfcd93c2dfa20fc63205c65142ddc4bc4e649ab1fa312565ea03bb324c
|
7
|
+
data.tar.gz: 5764cc76a32646d8162f37d76098540acfe10e10d2c27f91504cf72c3a9abc3d8802f01c9d4cd64df920a503184e605ce718c1e0229a96aad52c2fda8e29f5cc
|
@@ -247,6 +247,37 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
247
247
|
)
|
248
248
|
end
|
249
249
|
|
250
|
+
# Unsubscribe all users for a subscription list
|
251
|
+
# optionally send a notification email explaining the reason
|
252
|
+
#
|
253
|
+
# @param [string] slug Identifier for the subscription list
|
254
|
+
# @param [string] (optional) govuk_request_id An ID allowing us to trace requests across our infra. Required if you want to send an email.
|
255
|
+
# @param [string] (optional) body Optional email body to send to alert users they are being unsubscribed. Required if you want to send an email
|
256
|
+
# @param [string] (optional) sender_message_id A UUID to prevent multiple emails for the same event. Required if you want to send an email.
|
257
|
+
def bulk_unsubscribe(slug:, govuk_request_id: nil, body: nil, sender_message_id: nil)
|
258
|
+
post_json(
|
259
|
+
"#{endpoint}/subscriber-lists/#{slug}/bulk-unsubscribe",
|
260
|
+
{
|
261
|
+
body: body,
|
262
|
+
sender_message_id: sender_message_id,
|
263
|
+
}.compact,
|
264
|
+
{
|
265
|
+
"Govuk-Request-Id" => govuk_request_id,
|
266
|
+
}.compact,
|
267
|
+
)
|
268
|
+
end
|
269
|
+
|
270
|
+
# Update subscriber list details, such as title
|
271
|
+
# @param [Hash] params A hash of detail paramaters that can be updated. For example title.
|
272
|
+
# For allowed parameters see:
|
273
|
+
# https://github.com/alphagov/email-alert-api/blob/main/docs/api.md#patch-subscriber-listsxxx
|
274
|
+
def update_subscriber_list_details(slug:, params: {})
|
275
|
+
patch_json(
|
276
|
+
"#{endpoint}/subscriber-lists/#{slug}",
|
277
|
+
params,
|
278
|
+
)
|
279
|
+
end
|
280
|
+
|
250
281
|
private
|
251
282
|
|
252
283
|
def nested_query_string(params)
|
@@ -408,6 +408,91 @@ module GdsApi
|
|
408
408
|
.to_return(status: 404)
|
409
409
|
end
|
410
410
|
|
411
|
+
def stub_email_alert_api_bulk_unsubscribe(slug:)
|
412
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
413
|
+
.to_return(status: 202)
|
414
|
+
end
|
415
|
+
|
416
|
+
def stub_email_alert_api_bulk_unsubscribe_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
|
417
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
418
|
+
.with(
|
419
|
+
body: {
|
420
|
+
body: body,
|
421
|
+
sender_message_id: sender_message_id,
|
422
|
+
}.to_json,
|
423
|
+
headers: { "Govuk-Request-Id" => govuk_request_id },
|
424
|
+
).to_return(status: 202)
|
425
|
+
end
|
426
|
+
|
427
|
+
def stub_email_alert_api_bulk_unsubscribe_not_found(slug:)
|
428
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
429
|
+
.to_return(status: 404)
|
430
|
+
end
|
431
|
+
|
432
|
+
def stub_email_alert_api_bulk_unsubscribe_not_found_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
|
433
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
434
|
+
.with(
|
435
|
+
body: {
|
436
|
+
body: body,
|
437
|
+
sender_message_id: sender_message_id,
|
438
|
+
}.to_json,
|
439
|
+
headers: { "Govuk-Request-Id" => govuk_request_id },
|
440
|
+
).to_return(status: 404)
|
441
|
+
end
|
442
|
+
|
443
|
+
def stub_email_alert_api_bulk_unsubscribe_conflict(slug:)
|
444
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
445
|
+
.to_return(status: 409)
|
446
|
+
end
|
447
|
+
|
448
|
+
def stub_email_alert_api_bulk_unsubscribe_conflict_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
|
449
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
450
|
+
.with(
|
451
|
+
body: {
|
452
|
+
body: body,
|
453
|
+
sender_message_id: sender_message_id,
|
454
|
+
}.to_json,
|
455
|
+
headers: { "Govuk-Request-Id" => govuk_request_id },
|
456
|
+
).to_return(status: 409)
|
457
|
+
end
|
458
|
+
|
459
|
+
def stub_email_alert_api_bulk_unsubscribe_bad_request(slug:)
|
460
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
461
|
+
.to_return(status: 422)
|
462
|
+
end
|
463
|
+
|
464
|
+
def stub_email_alert_api_bulk_unsubscribe_bad_request_with_message(slug:, govuk_request_id:, body:, sender_message_id:)
|
465
|
+
stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}/bulk-unsubscribe")
|
466
|
+
.with(
|
467
|
+
body: {
|
468
|
+
body: body,
|
469
|
+
sender_message_id: sender_message_id,
|
470
|
+
}.to_json,
|
471
|
+
headers: { "Govuk-Request-Id" => govuk_request_id },
|
472
|
+
).to_return(status: 422)
|
473
|
+
end
|
474
|
+
|
475
|
+
def stub_update_subscriber_list_details(slug:, params:)
|
476
|
+
stub_request(:patch, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}")
|
477
|
+
.with(body: params.to_json)
|
478
|
+
.to_return(
|
479
|
+
status: 200,
|
480
|
+
body: get_subscriber_list_response(params).to_json,
|
481
|
+
)
|
482
|
+
end
|
483
|
+
|
484
|
+
def stub_update_subscriber_list_details_not_found(slug:, params:)
|
485
|
+
stub_request(:patch, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}")
|
486
|
+
.with(body: params.to_json)
|
487
|
+
.to_return(status: 404)
|
488
|
+
end
|
489
|
+
|
490
|
+
def stub_update_subscriber_list_details_unprocessible_entity(slug:, params: {})
|
491
|
+
stub_request(:patch, "#{EMAIL_ALERT_API_ENDPOINT}/subscriber-lists/#{slug}")
|
492
|
+
.with(body: params.to_json)
|
493
|
+
.to_return(status: 422)
|
494
|
+
end
|
495
|
+
|
411
496
|
private
|
412
497
|
|
413
498
|
def get_subscriber_response(id, address, govuk_account_id)
|
@@ -487,6 +572,7 @@ module GdsApi
|
|
487
572
|
if attributes
|
488
573
|
tags = attributes["tags"]
|
489
574
|
links = attributes["links"]
|
575
|
+
content_id = attributes["content_id"]
|
490
576
|
document_type = attributes["document_type"]
|
491
577
|
email_document_supertype = attributes["email_document_supertype"]
|
492
578
|
government_document_supertype = attributes["government_document_supertype"]
|
@@ -496,6 +582,7 @@ module GdsApi
|
|
496
582
|
params = {}
|
497
583
|
params[:tags] = tags if tags
|
498
584
|
params[:links] = links if links
|
585
|
+
params[:content_id] = content_id if content_id
|
499
586
|
params[:document_type] = document_type if document_type
|
500
587
|
params[:email_document_supertype] = email_document_supertype if email_document_supertype
|
501
588
|
params[:government_document_supertype] = government_document_supertype if government_document_supertype
|
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:
|
4
|
+
version: 79.0.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:
|
11
|
+
date: 2022-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|