sendgrid4r 0.0.5 → 0.1.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/.rubocop.yml +21 -0
- data/.travis.yml +2 -3
- data/README.md +3 -373
- data/Rakefile +1 -1
- data/lib/auth.rb +7 -9
- data/lib/client.rb +8 -9
- data/lib/sendgrid4r/factory/version_factory.rb +20 -10
- data/lib/sendgrid4r/rest/api.rb +28 -9
- data/lib/sendgrid4r/rest/asm/global_suppressions.rb +46 -0
- data/lib/sendgrid4r/rest/asm/groups.rb +69 -0
- data/lib/sendgrid4r/rest/asm/suppressions.rb +68 -0
- data/lib/sendgrid4r/rest/categories/categories.rb +38 -0
- data/lib/sendgrid4r/rest/ips/addresses.rb +74 -0
- data/lib/sendgrid4r/rest/ips/pools.rb +63 -0
- data/lib/sendgrid4r/rest/ips/warmup.rb +55 -0
- data/lib/sendgrid4r/rest/request.rb +34 -19
- data/lib/sendgrid4r/rest/settings/enforced_tls.rb +39 -0
- data/lib/sendgrid4r/rest/stats/advanced.rb +91 -0
- data/lib/sendgrid4r/rest/stats/category.rb +47 -0
- data/lib/sendgrid4r/rest/stats/global.rb +26 -0
- data/lib/sendgrid4r/rest/stats/parse.rb +26 -0
- data/lib/sendgrid4r/rest/stats/stats.rb +89 -0
- data/lib/sendgrid4r/rest/stats/subuser.rb +47 -0
- data/lib/sendgrid4r/rest/templates/templates.rb +61 -0
- data/lib/sendgrid4r/rest/templates/versions.rb +92 -0
- data/lib/sendgrid4r/version.rb +4 -1
- data/lib/sendgrid4r.rb +5 -2
- data/sendgrid4r.gemspec +13 -12
- data/spec/{global_suppressions_spec.rb → asm/global_suppressions_spec.rb} +25 -17
- data/spec/asm/groups_spec.rb +58 -0
- data/spec/{suppressions_spec.rb → asm/suppressions_spec.rb} +24 -22
- data/spec/categories/categories_spec.rb +39 -0
- data/spec/client_spec.rb +65 -50
- data/spec/ips/addresses_spec.rb +116 -0
- data/spec/ips/pools_spec.rb +43 -0
- data/spec/ips/warmup_spec.rb +52 -0
- data/spec/{enforced_tls_spec.rb → settings/enforced_tls_spec.rb} +12 -11
- data/spec/stats/advanced_spec.rb +243 -0
- data/spec/stats/category_spec.rb +112 -0
- data/spec/stats/global_spec.rb +64 -0
- data/spec/stats/parse_spec.rb +49 -0
- data/spec/stats/subuser_spec.rb +105 -0
- data/spec/templates/templates_spec.rb +66 -0
- data/spec/templates/versions_spec.rb +89 -0
- data/spec/version_factory_spec.rb +20 -15
- metadata +94 -42
- data/lib/sendgrid4r/rest/addresses.rb +0 -62
- data/lib/sendgrid4r/rest/enforced_tls.rb +0 -46
- data/lib/sendgrid4r/rest/global_suppressions.rb +0 -35
- data/lib/sendgrid4r/rest/groups.rb +0 -68
- data/lib/sendgrid4r/rest/pools.rb +0 -53
- data/lib/sendgrid4r/rest/suppressions.rb +0 -57
- data/lib/sendgrid4r/rest/templates.rb +0 -64
- data/lib/sendgrid4r/rest/versions.rb +0 -65
- data/lib/sendgrid4r/rest/warmup.rb +0 -53
- data/spec/addresses_spec.rb +0 -80
- data/spec/groups_spec.rb +0 -54
- data/spec/pools_spec.rb +0 -62
- data/spec/templates_spec.rb +0 -38
- data/spec/versions_spec.rb +0 -75
- data/spec/warmup_spec.rb +0 -52
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fb22cf3a6851051dc9aff2ccd01bb58f44f05d6b
|
4
|
+
data.tar.gz: 78395e30015b6182fdf8bdc61bf773d1a0b2c0f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e38ab32b44f3bf59f2c5feb724af2ad0b3d1c128e99f8f490a41a4fecd2d2b44e42c2dd690c65654c2e68d706b465ed6e2fc57c028fbb893f8ecffb1ed1f45e
|
7
|
+
data.tar.gz: d34d0ed4873dc08367e41c88101095b967b10c292807f39132fc994ab415e3a5551c843ba8ba5b4ee6aaeaebfb404865fee394bd3d22c5999da3bf3a06182fe1
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# メソッド名のprefixに「set_」「get_」を許可
|
2
|
+
AccessorMethodName:
|
3
|
+
Enabled: false
|
4
|
+
|
5
|
+
# メソッドの行数上限を変更
|
6
|
+
MethodLength:
|
7
|
+
CountComments: true # count full line comments?
|
8
|
+
Max: 20
|
9
|
+
|
10
|
+
# 引数上限を変更
|
11
|
+
ParameterLists:
|
12
|
+
Max: 6
|
13
|
+
CountKeywordArgs: true
|
14
|
+
|
15
|
+
# AbcSizeの上限を変更
|
16
|
+
AbcSize:
|
17
|
+
Max: 20
|
18
|
+
|
19
|
+
# %r 内で利用できるスラッシュの数の制限変更
|
20
|
+
RegexpLiteral:
|
21
|
+
MaxSlashes: 0
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -3,381 +3,11 @@
|
|
3
3
|
This gem allows you to quickly and easily access to SendGrid Web API v3 for Ruby.
|
4
4
|
See [api reference](https://sendgrid.com/docs/API_Reference/Web_API_v3/index.html) for more detail
|
5
5
|
|
6
|
-
[](https://travis-ci.org/awwa/sendgrid4r)
|
7
7
|
|
8
|
-
|
8
|
+
# [Documentation](https://github.com/awwa/sendgrid4r/wiki)
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
gem 'sendgrid4r'
|
13
|
-
|
14
|
-
And then execute:
|
15
|
-
|
16
|
-
$ bundle
|
17
|
-
|
18
|
-
Or install it yourself as:
|
19
|
-
|
20
|
-
$ gem install sendgrid4r
|
21
|
-
|
22
|
-
## Usage
|
23
|
-
|
24
|
-
### Create a client instance
|
25
|
-
|
26
|
-
Create a SendGrid::Client instance for API call.
|
27
|
-
|
28
|
-
```Ruby
|
29
|
-
require "sendgrid4r"
|
30
|
-
client = Sendgrid4r::Client.new("user", "pass")
|
31
|
-
```
|
32
|
-
|
33
|
-
----
|
34
|
-
### Advanced Suppression Manager
|
35
|
-
|
36
|
-
#### Groups
|
37
|
-
|
38
|
-
##### GET
|
39
|
-
Retrieve all suppression groups associated with your account.
|
40
|
-
```Ruby
|
41
|
-
groups = client.get_groups
|
42
|
-
groups.each{|group|
|
43
|
-
puts group.id # => 100
|
44
|
-
puts group.name # => "Newsletters"
|
45
|
-
puts group.description # => "Our monthly newsletter."
|
46
|
-
puts group.last_email_sent_at # => "2014-09-04 01:34:43"
|
47
|
-
puts group.unsubscribes # => 400
|
48
|
-
}
|
49
|
-
```
|
50
|
-
|
51
|
-
##### GET
|
52
|
-
Get information on a single suppression group.
|
53
|
-
```Ruby
|
54
|
-
group = client.get_group(100)
|
55
|
-
puts group.id # => 100
|
56
|
-
puts group.name # => "Newsletters"
|
57
|
-
puts group.description # => "Our monthly newsletter."
|
58
|
-
puts group.last_email_sent_at # => "2014-09-04 01:34:43"
|
59
|
-
puts group.unsubscribes # => 400
|
60
|
-
```
|
61
|
-
|
62
|
-
##### POST
|
63
|
-
Create a new suppression group.
|
64
|
-
```Ruby
|
65
|
-
new_group = client.post_group("group_name", "group_desc")
|
66
|
-
```
|
67
|
-
|
68
|
-
##### PATCH
|
69
|
-
Update a suppression group.
|
70
|
-
```Ruby
|
71
|
-
new_group.name = "group_edit"
|
72
|
-
new_group.description = "group_desc_edit"
|
73
|
-
client.patch_group(new_group.id, new_group)
|
74
|
-
```
|
75
|
-
|
76
|
-
##### DELETE
|
77
|
-
Delete a suppression group.
|
78
|
-
```Ruby
|
79
|
-
client.delete_group(100)
|
80
|
-
```
|
81
|
-
|
82
|
-
#### Suppressions
|
83
|
-
|
84
|
-
##### POST
|
85
|
-
Add recipient emails to the suppressions list for a given group.
|
86
|
-
```Ruby
|
87
|
-
emails = client.post_suppressed_emails(group.id, ["email1@address.com", "email2@address.com", "email3@address.com"])
|
88
|
-
```
|
89
|
-
|
90
|
-
##### GET
|
91
|
-
Get suppressions associated with a recipient email.
|
92
|
-
```Ruby
|
93
|
-
suppressions = client.get_suppressions("email@address.com")
|
94
|
-
suppressions.each{|suppression|
|
95
|
-
puts suppression.id # => 1
|
96
|
-
puts suppression.name # => "Weekly Newsletter"
|
97
|
-
puts suppression.description # => "The weekly newsletter"
|
98
|
-
puts suppression.suppressed # => true/false
|
99
|
-
}
|
100
|
-
```
|
101
|
-
|
102
|
-
##### GET
|
103
|
-
Retrieve suppressed emails for a group.
|
104
|
-
```Ruby
|
105
|
-
emails = client.get_suppressed_emails(100)
|
106
|
-
emails.each{|email|
|
107
|
-
puts email
|
108
|
-
}
|
109
|
-
```
|
110
|
-
|
111
|
-
##### DELETE
|
112
|
-
Delete a recipient email from the suppressions list for a given group.
|
113
|
-
```Ruby
|
114
|
-
client.delete_suppressed_email(100, "email1@address.com")
|
115
|
-
```
|
116
|
-
|
117
|
-
#### Global Suppressions
|
118
|
-
|
119
|
-
##### POST
|
120
|
-
Add recipient emails to the global suppression group.
|
121
|
-
```Ruby
|
122
|
-
emails = client.post_global_suppressed_emails(["email1@address.com", "email2@address.com", "email3@address.com"])
|
123
|
-
```
|
124
|
-
|
125
|
-
##### GET
|
126
|
-
Check if an address is in the global suppressions group.
|
127
|
-
```Ruby
|
128
|
-
email1 = client.get_global_suppressed_email("email1@address.com")
|
129
|
-
```
|
130
|
-
|
131
|
-
##### DELETE
|
132
|
-
Delete a recipient email from the global suppressions group.
|
133
|
-
```Ruby
|
134
|
-
client.delete_global_suppressed_email("email1@address.com")
|
135
|
-
```
|
136
|
-
|
137
|
-
----
|
138
|
-
### IP Management
|
139
|
-
|
140
|
-
#### IP Addresses
|
141
|
-
|
142
|
-
##### GET
|
143
|
-
See a list of all IPs and the IPs, including warm up status and pools.
|
144
|
-
```Ruby
|
145
|
-
ips = client.get_ips
|
146
|
-
ips.each{|ip|
|
147
|
-
puts ip.ip # => "xxx.xxx.xxx.xxx"
|
148
|
-
puts ip.pools # => ["new_test5"]
|
149
|
-
puts ip.warmup # => true/false
|
150
|
-
puts ip.start_date # => 1409616000
|
151
|
-
}
|
152
|
-
```
|
153
|
-
|
154
|
-
##### GET
|
155
|
-
See which pools an IP address belongs to.
|
156
|
-
```Ruby
|
157
|
-
ip = client.get_ip("xxx.xxx.xxx.xxx")
|
158
|
-
puts ip.ip # => "xxx.xxx.xxx.xxx"
|
159
|
-
puts ip.pools # => ["new_test5"]
|
160
|
-
puts ip.warmup # => true/false
|
161
|
-
```
|
162
|
-
|
163
|
-
##### POST
|
164
|
-
Add an IP to a pool.
|
165
|
-
```Ruby
|
166
|
-
ip = client.post_ip_to_pool("pool_name", "xxx.xxx.xxx.xxx")
|
167
|
-
puts ip.ip # => "xxx.xxx.xxx.xxx"
|
168
|
-
puts ip.pool_name # => "new_test5"
|
169
|
-
```
|
170
|
-
|
171
|
-
##### DELETE
|
172
|
-
Remove an IP address from a pool.
|
173
|
-
```Ruby
|
174
|
-
client.delete_ip_from_pool("pool_name", "xxx.xxx.xxx.xxx")
|
175
|
-
```
|
176
|
-
|
177
|
-
#### IP Pools
|
178
|
-
|
179
|
-
##### GET
|
180
|
-
List all IP pools.
|
181
|
-
```Ruby
|
182
|
-
pools = client.get_pools
|
183
|
-
puts pools.inspect # => ["marketing","transactional"]
|
184
|
-
```
|
185
|
-
|
186
|
-
##### POST
|
187
|
-
Create an IP pool.
|
188
|
-
```Ruby
|
189
|
-
pool = client.post_pool("name")
|
190
|
-
puts pool.name # => "name"
|
191
|
-
```
|
192
|
-
|
193
|
-
##### GET
|
194
|
-
List the IPs in a specified pool.
|
195
|
-
```Ruby
|
196
|
-
pool = client.get_pool("name")
|
197
|
-
puts pool.name # => "name"
|
198
|
-
puts pool.ips.inspect # => ["167.89.21.3"]
|
199
|
-
```
|
200
|
-
|
201
|
-
##### PUT
|
202
|
-
Update an IP pool’s name
|
203
|
-
```Ruby
|
204
|
-
client.put_pool("name", "new_name")
|
205
|
-
puts pool.name # => "name"
|
206
|
-
puts pool.ips.inspect # => ["167.89.21.3"]
|
207
|
-
```
|
208
|
-
|
209
|
-
##### DELETE
|
210
|
-
Delete an IP pool.
|
211
|
-
```Ruby
|
212
|
-
client.delete_pool("name")
|
213
|
-
```
|
214
|
-
|
215
|
-
#### IP Warmup
|
216
|
-
|
217
|
-
##### GET
|
218
|
-
Get all IPs that are currently warming up.
|
219
|
-
```Ruby
|
220
|
-
warmup_ips = client.get_warmup_ips
|
221
|
-
warmup_ips.each{|warmup_ip|
|
222
|
-
puts warmup_ip.ip # => "xxx.xxx.xxx.xxx"
|
223
|
-
puts warmup_ip.start_date # => 1409616000
|
224
|
-
}
|
225
|
-
```
|
226
|
-
|
227
|
-
##### GET
|
228
|
-
Get warmup status for a particular IP.
|
229
|
-
```Ruby
|
230
|
-
warmup_ip = client.get_warmup_ip("xxx.xxx.xxx.xxx")
|
231
|
-
puts warmup_ip.ip # => "xxx.xxx.xxx.xxx"
|
232
|
-
puts warmup_ip.start_date # => 1409616000
|
233
|
-
```
|
234
|
-
|
235
|
-
##### POST
|
236
|
-
Add an IP to warmup.
|
237
|
-
```Ruby
|
238
|
-
client.post_warmup_ip("xxx.xxx.xxx.xxx")
|
239
|
-
```
|
240
|
-
|
241
|
-
##### DELETE
|
242
|
-
Remove an IP from warmup.
|
243
|
-
```Ruby
|
244
|
-
client.delete_warmup_ip("xxx.xxx.xxx.xxx")
|
245
|
-
```
|
246
|
-
|
247
|
-
----
|
248
|
-
### Settings
|
249
|
-
|
250
|
-
#### Enforced TLS
|
251
|
-
|
252
|
-
##### GET
|
253
|
-
Get the current Enforced TLS settings.
|
254
|
-
```Ruby
|
255
|
-
enforced_tls = client.get_enforced_tls
|
256
|
-
puts enforced_tls.require_tls # => true/false
|
257
|
-
puts enforced_tls.require_valid_cert # => true/false
|
258
|
-
```
|
259
|
-
|
260
|
-
##### PATCH
|
261
|
-
Change the Enforced TLS settings.
|
262
|
-
```Ruby
|
263
|
-
enforced_tls = client.get_enforced_tls
|
264
|
-
enforced_tls.require_tls = true
|
265
|
-
enforced_tls.require_valid_cert = true
|
266
|
-
client.patch_enforced_tls(enforced_tls)
|
267
|
-
```
|
268
|
-
|
269
|
-
----
|
270
|
-
### Template Engine
|
271
|
-
|
272
|
-
#### Templates
|
273
|
-
|
274
|
-
##### GET
|
275
|
-
Retrieve all templates.
|
276
|
-
```Ruby
|
277
|
-
templates = client.get_templates
|
278
|
-
templates.each {|template|
|
279
|
-
puts template.id
|
280
|
-
puts template.name
|
281
|
-
template.versions.each {|ver|
|
282
|
-
puts ver.id
|
283
|
-
puts ver.template_id
|
284
|
-
puts ver.active
|
285
|
-
puts ver.name
|
286
|
-
puts ver.updated_at
|
287
|
-
}
|
288
|
-
}
|
289
|
-
```
|
290
|
-
|
291
|
-
##### GET
|
292
|
-
Retrieve a single template
|
293
|
-
```Ruby
|
294
|
-
template = client.get_template(template_id)
|
295
|
-
puts template.id
|
296
|
-
puts template.name
|
297
|
-
template.versions.each {|ver|
|
298
|
-
puts ver.id
|
299
|
-
puts ver.template_id
|
300
|
-
puts ver.active
|
301
|
-
puts ver.name
|
302
|
-
puts ver.updated_at
|
303
|
-
}
|
304
|
-
```
|
305
|
-
|
306
|
-
##### POST
|
307
|
-
Create a template
|
308
|
-
```Ruby
|
309
|
-
client.post_template("new_template_name")
|
310
|
-
```
|
311
|
-
|
312
|
-
##### PATCH
|
313
|
-
Edit a template.
|
314
|
-
```Ruby
|
315
|
-
client.patch_template(template_id, "edit_template_name")
|
316
|
-
```
|
317
|
-
|
318
|
-
##### DELETE
|
319
|
-
Delete a template.
|
320
|
-
```Ruby
|
321
|
-
client.delete_template(template_id)
|
322
|
-
```
|
323
|
-
|
324
|
-
#### Versions
|
325
|
-
|
326
|
-
##### GET
|
327
|
-
Retrieve a specific version of template.
|
328
|
-
```Ruby
|
329
|
-
ver = client.get_version(template_id, version_id)
|
330
|
-
puts ver.id
|
331
|
-
puts ver.template_id
|
332
|
-
puts ver.active
|
333
|
-
puts ver.name
|
334
|
-
puts ver.html_content
|
335
|
-
puts ver.plain_content
|
336
|
-
puts ver.subject
|
337
|
-
puts ver.update_at
|
338
|
-
```
|
339
|
-
|
340
|
-
##### POST
|
341
|
-
Create a new version
|
342
|
-
```Ruby
|
343
|
-
factory = SendGrid4r::VersionFactory.new
|
344
|
-
ver1 = factory.create("version1_name")
|
345
|
-
ver1 = client.post_version(template_id, ver1)
|
346
|
-
puts ver1.name # => "version1_name"
|
347
|
-
puts ver1.subject # => "<%subject%>"
|
348
|
-
puts ver1.html_content # => "<%body%>"
|
349
|
-
puts ver1.plain_content # => "<%body%>"
|
350
|
-
puts ver1.active # => 1
|
351
|
-
|
352
|
-
ver2 = factory.create("version2_name", "<%subject%> ver2", "<%body%> ver2", "<%body%> ver2", 1)
|
353
|
-
ver2 = client.post_version(template_id, ver2)
|
354
|
-
```
|
355
|
-
|
356
|
-
##### POST
|
357
|
-
Activate a version.
|
358
|
-
```Ruby
|
359
|
-
client.activate_version(template_id, version_id)
|
360
|
-
```
|
361
|
-
|
362
|
-
##### PATCH
|
363
|
-
Edit a version.
|
364
|
-
```Ruby
|
365
|
-
edit_ver = client.get_version(template_id, version_id)
|
366
|
-
edit_ver.name = "edit_version"
|
367
|
-
edit_ver.subject = "edit<%subject%>edit"
|
368
|
-
edit_ver.html_content = "edit<%body%>edit"
|
369
|
-
edit_ver.plain_content = "edit<%body%>edit"
|
370
|
-
edit_ver.active = 0
|
371
|
-
client.patch_version(template_id, version_id, edit_ver)
|
372
|
-
```
|
373
|
-
|
374
|
-
##### DELETE
|
375
|
-
Delete a version.
|
376
|
-
```Ruby
|
377
|
-
client.delete_version(template_id, version_id)
|
378
|
-
```
|
379
|
-
|
380
|
-
## Contributing
|
10
|
+
# Contributing
|
381
11
|
|
382
12
|
1. Fork it ( https://github.com/[my-github-username]/sendgrid4r/fork )
|
383
13
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
data/Rakefile
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require
|
1
|
+
require 'bundler/gem_tasks'
|
data/lib/auth.rb
CHANGED
@@ -1,18 +1,16 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
|
1
4
|
module SendGrid4r
|
5
|
+
#
|
6
|
+
# SendGrid Web API v3 data container for authentication
|
7
|
+
#
|
2
8
|
class Auth
|
9
|
+
attr_reader :username, :password
|
3
10
|
|
4
11
|
def initialize(username, password)
|
5
12
|
@username = username
|
6
13
|
@password = password
|
7
14
|
end
|
8
|
-
|
9
|
-
def get_username
|
10
|
-
@username
|
11
|
-
end
|
12
|
-
|
13
|
-
def get_password
|
14
|
-
@password
|
15
|
-
end
|
16
|
-
|
17
15
|
end
|
18
16
|
end
|
data/lib/client.rb
CHANGED
@@ -1,22 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
3
|
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
4
|
+
require 'auth'
|
5
|
+
require 'sendgrid4r/rest/api'
|
6
|
+
require 'sendgrid4r/factory/version_factory'
|
7
7
|
|
8
8
|
module SendGrid4r
|
9
|
-
|
9
|
+
#
|
10
|
+
# SendGrid Web API v3 Client implementation
|
11
|
+
#
|
10
12
|
class Client
|
11
|
-
|
12
13
|
include SendGrid4r::REST::API
|
13
14
|
|
14
|
-
BASE_URL =
|
15
|
+
BASE_URL = 'https://api.sendgrid.com/v3'
|
15
16
|
|
16
17
|
def initialize(username, password)
|
17
18
|
@auth = Auth.new(username, password)
|
18
19
|
end
|
19
|
-
|
20
20
|
end
|
21
|
-
|
22
21
|
end
|
@@ -1,15 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
|
1
4
|
module SendGrid4r
|
5
|
+
#
|
6
|
+
# SendGrid Web API v3 Factory Class implementation
|
7
|
+
#
|
2
8
|
class VersionFactory
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
def create(
|
10
|
+
name:, subject: '<%subject%>',
|
11
|
+
html_content: '<%body%>', plain_content: '<%body%>', active: 1)
|
12
|
+
SendGrid4r::REST::Templates::Version.new(
|
13
|
+
nil,
|
14
|
+
nil,
|
15
|
+
nil,
|
16
|
+
active,
|
17
|
+
name,
|
18
|
+
html_content,
|
19
|
+
plain_content,
|
20
|
+
subject,
|
21
|
+
nil
|
22
|
+
)
|
12
23
|
end
|
13
|
-
|
14
24
|
end
|
15
25
|
end
|
data/lib/sendgrid4r/rest/api.rb
CHANGED
@@ -1,15 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
|
4
|
+
require 'sendgrid4r/rest/templates/templates'
|
5
|
+
require 'sendgrid4r/rest/templates/versions'
|
6
|
+
require 'sendgrid4r/rest/asm/groups'
|
7
|
+
require 'sendgrid4r/rest/asm/suppressions'
|
8
|
+
require 'sendgrid4r/rest/asm/global_suppressions'
|
9
|
+
require 'sendgrid4r/rest/settings/enforced_tls'
|
10
|
+
require 'sendgrid4r/rest/ips/addresses'
|
11
|
+
require 'sendgrid4r/rest/ips/pools'
|
12
|
+
require 'sendgrid4r/rest/ips/warmup'
|
13
|
+
require 'sendgrid4r/rest/categories/categories'
|
14
|
+
require 'sendgrid4r/rest/stats/stats'
|
15
|
+
require 'sendgrid4r/rest/stats/global'
|
16
|
+
require 'sendgrid4r/rest/stats/category'
|
17
|
+
require 'sendgrid4r/rest/stats/subuser'
|
18
|
+
require 'sendgrid4r/rest/stats/advanced'
|
19
|
+
require 'sendgrid4r/rest/stats/parse'
|
10
20
|
|
11
21
|
module SendGrid4r
|
12
22
|
module REST
|
23
|
+
#
|
24
|
+
# SendGrid Web API v3
|
25
|
+
#
|
13
26
|
module API
|
14
27
|
include SendGrid4r::REST::Templates
|
15
28
|
include SendGrid4r::REST::Templates::Versions
|
@@ -20,6 +33,12 @@ module SendGrid4r
|
|
20
33
|
include SendGrid4r::REST::Ips::Addresses
|
21
34
|
include SendGrid4r::REST::Ips::Warmup
|
22
35
|
include SendGrid4r::REST::Ips::Pools
|
36
|
+
include SendGrid4r::REST::Categories::Categories
|
37
|
+
include SendGrid4r::REST::Stats::Global
|
38
|
+
include SendGrid4r::REST::Stats::Category
|
39
|
+
include SendGrid4r::REST::Stats::Subuser
|
40
|
+
include SendGrid4r::REST::Stats::Advanced
|
41
|
+
include SendGrid4r::REST::Stats::Parse
|
23
42
|
end
|
24
43
|
end
|
25
44
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
|
4
|
+
require 'sendgrid4r/rest/request'
|
5
|
+
|
6
|
+
module SendGrid4r
|
7
|
+
module REST
|
8
|
+
module Asm
|
9
|
+
#
|
10
|
+
# SendGrid Web API v3 Advanced Suppression Manager - Global Suppressions
|
11
|
+
#
|
12
|
+
module GlobalSuppressions
|
13
|
+
include SendGrid4r::REST::Request
|
14
|
+
|
15
|
+
def self.url(email_address = nil)
|
16
|
+
url = "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/global"
|
17
|
+
url = "#{url}/#{email_address}" unless email_address.nil?
|
18
|
+
url
|
19
|
+
end
|
20
|
+
|
21
|
+
def post_global_suppressed_emails(recipient_emails)
|
22
|
+
params = { recipient_emails: recipient_emails }
|
23
|
+
resp = post(
|
24
|
+
@auth,
|
25
|
+
SendGrid4r::REST::Asm::GlobalSuppressions.url,
|
26
|
+
params
|
27
|
+
)
|
28
|
+
resp['recipient_emails']
|
29
|
+
end
|
30
|
+
|
31
|
+
def get_global_suppressed_email(email_address)
|
32
|
+
resp = get(
|
33
|
+
@auth,
|
34
|
+
SendGrid4r::REST::Asm::GlobalSuppressions.url(email_address)
|
35
|
+
)
|
36
|
+
resp['recipient_email']
|
37
|
+
end
|
38
|
+
|
39
|
+
def delete_global_suppressed_email(email_address)
|
40
|
+
delete(
|
41
|
+
@auth, SendGrid4r::REST::Asm::GlobalSuppressions.url(email_address))
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$LOAD_PATH.unshift File.dirname(__FILE__)
|
3
|
+
|
4
|
+
require 'sendgrid4r/rest/request'
|
5
|
+
|
6
|
+
module SendGrid4r
|
7
|
+
module REST
|
8
|
+
module Asm
|
9
|
+
#
|
10
|
+
# SendGrid Web API v3 Advanced Suppression Manager - Groups
|
11
|
+
#
|
12
|
+
module Groups
|
13
|
+
include SendGrid4r::REST::Request
|
14
|
+
|
15
|
+
Group = Struct.new(
|
16
|
+
:id, :name, :description, :last_email_sent_at, :unsubscribes)
|
17
|
+
|
18
|
+
def self.create_group(resp)
|
19
|
+
Group.new(
|
20
|
+
resp['id'],
|
21
|
+
resp['name'],
|
22
|
+
resp['description'],
|
23
|
+
resp['last_email_sent_at'],
|
24
|
+
resp['unsubscribes']
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def post_group(name, description)
|
29
|
+
params = { name: name, description: description }
|
30
|
+
resp = post(
|
31
|
+
@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups", params
|
32
|
+
)
|
33
|
+
SendGrid4r::REST::Asm::Groups.create_group(resp)
|
34
|
+
end
|
35
|
+
|
36
|
+
def get_groups
|
37
|
+
resp_a = get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups")
|
38
|
+
groups = []
|
39
|
+
resp_a.each do |resp|
|
40
|
+
groups.push(SendGrid4r::REST::Asm::Groups.create_group(resp))
|
41
|
+
end
|
42
|
+
groups
|
43
|
+
end
|
44
|
+
|
45
|
+
def get_group(group_id)
|
46
|
+
resp = get(
|
47
|
+
@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}"
|
48
|
+
)
|
49
|
+
SendGrid4r::REST::Asm::Groups.create_group(resp)
|
50
|
+
end
|
51
|
+
|
52
|
+
def patch_group(group_id, group)
|
53
|
+
resp = patch(
|
54
|
+
@auth,
|
55
|
+
"#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}",
|
56
|
+
group.to_h
|
57
|
+
)
|
58
|
+
SendGrid4r::REST::Asm::Groups.create_group(resp)
|
59
|
+
end
|
60
|
+
|
61
|
+
def delete_group(group_id)
|
62
|
+
delete(
|
63
|
+
@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}"
|
64
|
+
)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|