notifications-ruby-client 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +8 -1
- data/bin/generate_docker_env.sh +1 -0
- data/bin/test_client.rb +27 -40
- data/lib/notifications/client/speaker.rb +3 -1
- data/lib/notifications/client/version.rb +1 -1
- data/lib/notifications/client.rb +8 -8
- data/notifications-ruby-client.gemspec +6 -6
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ef674bdb3a2528e839be78d8b0cbd00ee6282e24
|
4
|
+
data.tar.gz: b0eebc96892290238c4630571e6486c1698683a3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 77bf1e4c948f19d5acc96acdfdff7c7b73fdb95b7fb235aa940ec5f6882579915c550d2a5fcdad8a3048e104707a7ea6dfec52bbb17a684411c3324376a69a92
|
7
|
+
data.tar.gz: 1c4cd55f314823d2c974f91fd0b9d1cb731cc19665f2ec7d0415476fb6bea2016e1fe76d4c7026f743f2f88e274ab1f7250356a057080fe6ee628de0377c248e
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## 2.3.0
|
2
|
+
|
3
|
+
### Changed
|
4
|
+
* It is now possible to have multiple email to reply to addresses. Added the option to specify an `email_reply_to_id`
|
5
|
+
when using the `send_email` method. If no `email_reply_to_id` is specified, the default email reply to address will be
|
6
|
+
used.
|
7
|
+
* Upgraded all dependencies
|
8
|
+
* Minor code style changes and fixes for the tests
|
9
|
+
|
1
10
|
## 2.2.0
|
2
11
|
|
3
12
|
### Changed
|
data/README.md
CHANGED
@@ -137,6 +137,7 @@ email = client.send_email(
|
|
137
137
|
year: "2016"
|
138
138
|
},
|
139
139
|
reference: "your_reference_string"
|
140
|
+
email_reply_to_id: email_reply_to_id
|
140
141
|
) # => Notifications::Client::ResponseNotification
|
141
142
|
```
|
142
143
|
|
@@ -387,6 +388,12 @@ personalisation: {
|
|
387
388
|
|
388
389
|
The fields `address_line_1`, `address_line_2` and `postcode` are required.
|
389
390
|
|
391
|
+
#### `email_reply_to_id`
|
392
|
+
|
393
|
+
Optional. Specifies the identifier of the email reply-to address to set for the notification. The identifiers are found in your service Settings, when you 'Manage' your 'Email reply to addresses'.
|
394
|
+
|
395
|
+
If you omit this argument your default email reply-to address will be set for the notification.
|
396
|
+
|
390
397
|
### Get the status of one message
|
391
398
|
|
392
399
|
```ruby
|
@@ -727,7 +734,7 @@ You can omit this argument to ignore this filter.
|
|
727
734
|
## Generate a preview template
|
728
735
|
This will return the contents of a template with the placeholders replaced with the given personalisation.
|
729
736
|
```ruby
|
730
|
-
templatePreview = client.generate_template_preview(template_id
|
737
|
+
templatePreview = client.generate_template_preview(template_id,
|
731
738
|
personalisation: {
|
732
739
|
name: "name",
|
733
740
|
year: "2016",
|
data/bin/generate_docker_env.sh
CHANGED
data/bin/test_client.rb
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'notifications/client'
|
3
|
-
require 'notifications/client/notification'
|
4
|
-
require 'notifications/client/response_notification'
|
5
|
-
require 'notifications/client/notification'
|
6
|
-
require 'notifications/client/response_template'
|
7
|
-
require 'notifications/client/template_collection'
|
2
|
+
require './lib/notifications/client'
|
8
3
|
|
9
4
|
def main
|
10
5
|
client = Notifications::Client.new(ENV['API_KEY'], ENV['NOTIFY_API_URL'])
|
@@ -35,7 +30,7 @@ def test_get_template_version(client, id, version)
|
|
35
30
|
end
|
36
31
|
|
37
32
|
def test_get_all_templates(client)
|
38
|
-
response = client.get_all_templates
|
33
|
+
response = client.get_all_templates
|
39
34
|
unless response.is_a?(Notifications::Client::TemplateCollection)
|
40
35
|
p 'failed test_get_all_templates response is not a Notifications::Client::TemplateCollection'
|
41
36
|
exit 1
|
@@ -50,7 +45,7 @@ def test_get_all_templates(client)
|
|
50
45
|
end
|
51
46
|
|
52
47
|
def test_get_all_templates_filter_by_type(client)
|
53
|
-
response = client.get_all_templates(
|
48
|
+
response = client.get_all_templates('type' => 'sms')
|
54
49
|
unless response.is_a?(Notifications::Client::TemplateCollection)
|
55
50
|
p 'failed test_get_all_templates response is not a Notifications::Client::TemplateCollection'
|
56
51
|
exit 1
|
@@ -63,8 +58,7 @@ def test_get_all_templates_filter_by_type(client)
|
|
63
58
|
end
|
64
59
|
|
65
60
|
def test_generate_template_preview(client, id)
|
66
|
-
|
67
|
-
response = client.generate_template_preview(id, personalisation:Hash["name", "some name"])
|
61
|
+
response = client.generate_template_preview(id, personalisation: { "name" => "some name" })
|
68
62
|
test_template_preview(response)
|
69
63
|
end
|
70
64
|
|
@@ -93,16 +87,18 @@ def test_template_preview(response)
|
|
93
87
|
end
|
94
88
|
|
95
89
|
def test_send_email_endpoint(client)
|
96
|
-
email_resp = client.send_email(email_address: ENV['FUNCTIONAL_TEST_EMAIL'],
|
97
|
-
|
98
|
-
|
90
|
+
email_resp = client.send_email(email_address: ENV['FUNCTIONAL_TEST_EMAIL'],
|
91
|
+
template_id: ENV['EMAIL_TEMPLATE_ID'],
|
92
|
+
personalisation: { "name" => "some name" },
|
93
|
+
reference: "some reference",
|
94
|
+
email_reply_to_id: ENV['EMAIL_REPLY_TO_ID'])
|
99
95
|
test_notification_response_data_type(email_resp, 'email')
|
100
96
|
email_resp
|
101
97
|
end
|
102
98
|
|
103
99
|
def test_send_sms_endpoint(client)
|
104
100
|
sms_resp = client.send_sms(phone_number: ENV['FUNCTIONAL_TEST_NUMBER'], template_id: ENV['SMS_TEMPLATE_ID'],
|
105
|
-
personalisation:
|
101
|
+
personalisation: { "name" => "some name" },
|
106
102
|
reference: "some reference")
|
107
103
|
test_notification_response_data_type(sms_resp, 'sms')
|
108
104
|
sms_resp
|
@@ -124,22 +120,22 @@ end
|
|
124
120
|
|
125
121
|
def test_notification_response_data_type(notification, message_type)
|
126
122
|
unless notification.is_a?(Notifications::Client::ResponseNotification)
|
127
|
-
p 'failed ' + message_type +' response is not a Notifications::Client::ResponseNotification'
|
123
|
+
p 'failed ' + message_type + ' response is not a Notifications::Client::ResponseNotification'
|
128
124
|
exit 1
|
129
125
|
end
|
130
126
|
unless notification.id.is_a?(String)
|
131
|
-
p 'failed '+ message_type + 'id is not a String'
|
127
|
+
p 'failed ' + message_type + 'id is not a String'
|
132
128
|
exit 1
|
133
129
|
end
|
134
|
-
field_should_not_be_nil(expected_fields_in_notification_response, notification, 'send_'+message_type)
|
135
|
-
hash_key_should_not_be_nil(expected_fields_in_template, notification.send('template'), 'send_'+message_type+'.template')
|
130
|
+
field_should_not_be_nil(expected_fields_in_notification_response, notification, 'send_' + message_type)
|
131
|
+
hash_key_should_not_be_nil(expected_fields_in_template, notification.send('template'), 'send_' + message_type + '.template')
|
136
132
|
|
137
133
|
if message_type == 'email'
|
138
|
-
hash_key_should_not_be_nil(expected_fields_in_email_content, notification.send('content'), 'send_'+message_type+'.content')
|
134
|
+
hash_key_should_not_be_nil(expected_fields_in_email_content, notification.send('content'), 'send_' + message_type + '.content')
|
139
135
|
elsif message_type == 'sms'
|
140
|
-
hash_key_should_not_be_nil(expected_fields_in_sms_content, notification.send('content'),'send_'+message_type+'.content')
|
136
|
+
hash_key_should_not_be_nil(expected_fields_in_sms_content, notification.send('content'), 'send_' + message_type + '.content')
|
141
137
|
elsif message_type == 'letter'
|
142
|
-
hash_key_should_not_be_nil(expected_fields_in_letter_content, notification.send('content'),'send_'+message_type+'.content')
|
138
|
+
hash_key_should_not_be_nil(expected_fields_in_letter_content, notification.send('content'), 'send_' + message_type + '.content')
|
143
139
|
end
|
144
140
|
end
|
145
141
|
|
@@ -199,16 +195,14 @@ def expected_fields_in_template_response
|
|
199
195
|
created_at
|
200
196
|
created_by
|
201
197
|
body
|
202
|
-
version
|
203
|
-
)
|
198
|
+
version)
|
204
199
|
end
|
205
200
|
|
206
201
|
def expected_fields_in_template_preview
|
207
202
|
%w(id
|
208
203
|
body
|
209
204
|
version
|
210
|
-
type
|
211
|
-
)
|
205
|
+
type)
|
212
206
|
end
|
213
207
|
|
214
208
|
def expected_fields_in_notification_response
|
@@ -216,20 +210,17 @@ def expected_fields_in_notification_response
|
|
216
210
|
reference
|
217
211
|
content
|
218
212
|
template
|
219
|
-
uri
|
220
|
-
)
|
213
|
+
uri)
|
221
214
|
end
|
222
215
|
|
223
216
|
def expected_fields_in_email_content
|
224
217
|
%w(from_email
|
225
218
|
body
|
226
|
-
subject
|
227
|
-
)
|
219
|
+
subject)
|
228
220
|
end
|
229
221
|
|
230
222
|
def expected_fields_in_sms_content
|
231
|
-
%w(body
|
232
|
-
)
|
223
|
+
%w(body)
|
233
224
|
end
|
234
225
|
|
235
226
|
def expected_fields_in_letter_content
|
@@ -247,8 +238,7 @@ def expected_fields_in_email_notification
|
|
247
238
|
template
|
248
239
|
body
|
249
240
|
subject
|
250
|
-
created_at
|
251
|
-
)
|
241
|
+
created_at)
|
252
242
|
end
|
253
243
|
|
254
244
|
def expected_fields_in_email_notification_that_are_nil
|
@@ -260,8 +250,7 @@ def expected_fields_in_email_notification_that_are_nil
|
|
260
250
|
line_5
|
261
251
|
line_5
|
262
252
|
line_6
|
263
|
-
postcode
|
264
|
-
)
|
253
|
+
postcode)
|
265
254
|
end
|
266
255
|
|
267
256
|
def expected_fields_in_sms_notification
|
@@ -271,8 +260,7 @@ def expected_fields_in_sms_notification
|
|
271
260
|
status
|
272
261
|
template
|
273
262
|
body
|
274
|
-
created_at
|
275
|
-
)
|
263
|
+
created_at)
|
276
264
|
end
|
277
265
|
|
278
266
|
def expected_fields_in_sms_notification_that_are_nil
|
@@ -322,7 +310,7 @@ def expected_fields_in_template
|
|
322
310
|
end
|
323
311
|
|
324
312
|
def test_get_all_notifications(client)
|
325
|
-
notifications = client.get_notifications
|
313
|
+
notifications = client.get_notifications
|
326
314
|
unless notifications.is_a?(Notifications::Client::NotificationsCollection)
|
327
315
|
p 'get all notifications is not Notifications::Client::NotificationsCollection'
|
328
316
|
exit 1
|
@@ -332,8 +320,7 @@ end
|
|
332
320
|
|
333
321
|
def expected_fields_for_get_all_notifications
|
334
322
|
%W(links
|
335
|
-
|
336
|
-
)
|
323
|
+
collection)
|
337
324
|
end
|
338
325
|
|
339
326
|
if __FILE__ == $PROGRAM_NAME
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require "net/https"
|
2
2
|
require "uri"
|
3
3
|
require "jwt"
|
4
|
-
|
4
|
+
require_relative "request_error"
|
5
5
|
|
6
6
|
module Notifications
|
7
7
|
class Client
|
@@ -38,6 +38,8 @@ module Notifications
|
|
38
38
|
# A reference specified by the service for the notification. Get all notifications can be filtered by this reference.
|
39
39
|
# This reference can be unique or used used to refer to a batch of notifications.
|
40
40
|
# Can be an empty string or nil, when you do not require a reference for the notifications.
|
41
|
+
# @option form_data [String] :email_reply_to_id
|
42
|
+
# id of the email address that replies to email notifications will be sent to
|
41
43
|
# @see #perform_request!
|
42
44
|
def post(kind, form_data)
|
43
45
|
request = Net::HTTP::Post.new(
|
data/lib/notifications/client.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
1
|
+
require_relative "client/version"
|
2
|
+
require_relative "client/speaker"
|
3
|
+
require_relative "client/notification"
|
4
|
+
require_relative "client/response_notification"
|
5
|
+
require_relative "client/notifications_collection"
|
6
|
+
require_relative "client/response_template"
|
7
|
+
require_relative "client/template_collection"
|
8
|
+
require_relative "client/template_preview"
|
9
9
|
require "forwardable"
|
10
10
|
|
11
11
|
module Notifications
|
@@ -20,11 +20,11 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
|
-
spec.add_runtime_dependency "jwt", "~> 1
|
23
|
+
spec.add_runtime_dependency "jwt", "~> 2.1"
|
24
24
|
|
25
|
-
spec.add_development_dependency "bundler", "~> 1.
|
26
|
-
spec.add_development_dependency "rake", "~>
|
27
|
-
spec.add_development_dependency "rspec", "~> 3.
|
28
|
-
spec.add_development_dependency "webmock", "~>
|
29
|
-
spec.add_development_dependency "factory_girl", "~> 4.
|
25
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
26
|
+
spec.add_development_dependency "rake", "~> 12.1"
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.6"
|
28
|
+
spec.add_development_dependency "webmock", "~> 3.1"
|
29
|
+
spec.add_development_dependency "factory_girl", "~> 4.8"
|
30
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notifications-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Government Digital Service
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|
@@ -16,84 +16,84 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '2.1'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '1.
|
33
|
+
version: '1.13'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '1.
|
40
|
+
version: '1.13'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '12.1'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '12.1'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '3.
|
61
|
+
version: '3.6'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '3.
|
68
|
+
version: '3.6'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: webmock
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
75
|
+
version: '3.1'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
82
|
+
version: '3.1'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: factory_girl
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '4.
|
89
|
+
version: '4.8'
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '4.
|
96
|
+
version: '4.8'
|
97
97
|
description:
|
98
98
|
email:
|
99
99
|
- notify@digital.cabinet-office.gov.uk
|
@@ -145,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
145
|
version: '0'
|
146
146
|
requirements: []
|
147
147
|
rubyforge_project:
|
148
|
-
rubygems_version: 2.
|
148
|
+
rubygems_version: 2.6.13
|
149
149
|
signing_key:
|
150
150
|
specification_version: 4
|
151
151
|
summary: Ruby client for GOV.UK Notifications API
|