sendgrid-ruby 1.1.6 → 3.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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE +17 -0
  3. data/.travis.yml +1 -6
  4. data/CHANGELOG.md +6 -0
  5. data/CONTRIBUTING.md +202 -0
  6. data/Gemfile +3 -5
  7. data/LICENSE.txt +1 -1
  8. data/README.md +74 -248
  9. data/Rakefile +8 -6
  10. data/USAGE.md +4645 -0
  11. data/examples/accesssettings/accesssettings.rb +89 -0
  12. data/examples/apikeys/apikeys.rb +95 -0
  13. data/examples/asm/asm.rb +169 -0
  14. data/examples/browsers/browsers.rb +29 -0
  15. data/examples/campaigns/campaigns.rb +166 -0
  16. data/examples/categories/categories.rb +49 -0
  17. data/examples/clients/clients.rb +40 -0
  18. data/examples/contactdb/contactdb.rb +398 -0
  19. data/examples/devices/devices.rb +29 -0
  20. data/examples/geo/geo.rb +29 -0
  21. data/examples/helpers/mail/example.rb +130 -0
  22. data/examples/ips/ips.rb +167 -0
  23. data/examples/mail/mail.rb +191 -0
  24. data/examples/mailboxproviders/mailboxproviders.rb +29 -0
  25. data/examples/mailsettings/mailsettings.rb +232 -0
  26. data/examples/partnersettings/partnersettings.rb +52 -0
  27. data/examples/scopes/scopes.rb +28 -0
  28. data/examples/stats/stats.rb +29 -0
  29. data/examples/subusers/subusers.rb +182 -0
  30. data/examples/suppression/suppression.rb +186 -0
  31. data/examples/templates/templates.rb +142 -0
  32. data/examples/trackingsettings/trackingsettings.rb +123 -0
  33. data/examples/user/user.rb +256 -0
  34. data/examples/whitelabel/whitelabel.rb +323 -0
  35. data/lib/helpers/mail/README.md +14 -0
  36. data/lib/helpers/mail/mail.rb +999 -0
  37. data/lib/sendgrid-ruby.rb +33 -8
  38. data/sendgrid-ruby.gemspec +5 -17
  39. data/test/helpers/mail/test_mail.rb +122 -0
  40. data/test/test_sendgrid-ruby.rb +2016 -0
  41. metadata +42 -190
  42. data/.env_sample +0 -3
  43. data/.rspec +0 -2
  44. data/.rubocop.yml +0 -30
  45. data/FETCH_HEAD +0 -0
  46. data/Guardfile +0 -10
  47. data/example.rb +0 -41
  48. data/lib/sendgrid/client.rb +0 -62
  49. data/lib/sendgrid/exceptions.rb +0 -7
  50. data/lib/sendgrid/mail.rb +0 -182
  51. data/lib/sendgrid/recipient.rb +0 -29
  52. data/lib/sendgrid/response.rb +0 -14
  53. data/lib/sendgrid/template.rb +0 -26
  54. data/lib/sendgrid/template_mailer.rb +0 -59
  55. data/lib/sendgrid/version.rb +0 -3
  56. data/spec/lib/sendgrid/client_spec.rb +0 -87
  57. data/spec/lib/sendgrid/mail_spec.rb +0 -151
  58. data/spec/lib/sendgrid/recipient_spec.rb +0 -91
  59. data/spec/lib/sendgrid/template_mailer_spec.rb +0 -86
  60. data/spec/lib/sendgrid/template_spec.rb +0 -61
  61. data/spec/lib/sendgrid_spec.rb +0 -7
  62. data/spec/spec_helper.rb +0 -1
@@ -0,0 +1,29 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Retrieve email statistics by mailbox provider. #
22
+ # GET /mailbox_providers/stats #
23
+
24
+ params = JSON.parse('{"end_date": "2016-04-01", "mailbox_providers": "test_string", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01"}')
25
+ response = sg.client.mailbox_providers.stats.get(query_params: params)
26
+ puts response.status_code
27
+ puts response.body
28
+ puts response.headers
29
+
@@ -0,0 +1,232 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Retrieve all mail settings #
22
+ # GET /mail_settings #
23
+
24
+ params = JSON.parse('{"limit": 1, "offset": 1}')
25
+ response = sg.client.mail_settings.get(query_params: params)
26
+ puts response.status_code
27
+ puts response.body
28
+ puts response.headers
29
+
30
+ ##################################################
31
+ # Update address whitelist mail settings #
32
+ # PATCH /mail_settings/address_whitelist #
33
+
34
+ data = JSON.parse('{
35
+ "enabled": true,
36
+ "list": [
37
+ "email1@example.com",
38
+ "example.com"
39
+ ]
40
+ }')
41
+ response = sg.client.mail_settings.address_whitelist.patch(request_body: data)
42
+ puts response.status_code
43
+ puts response.body
44
+ puts response.headers
45
+
46
+ ##################################################
47
+ # Retrieve address whitelist mail settings #
48
+ # GET /mail_settings/address_whitelist #
49
+
50
+ response = sg.client.mail_settings.address_whitelist.get()
51
+ puts response.status_code
52
+ puts response.body
53
+ puts response.headers
54
+
55
+ ##################################################
56
+ # Update BCC mail settings #
57
+ # PATCH /mail_settings/bcc #
58
+
59
+ data = JSON.parse('{
60
+ "email": "email@example.com",
61
+ "enabled": false
62
+ }')
63
+ response = sg.client.mail_settings.bcc.patch(request_body: data)
64
+ puts response.status_code
65
+ puts response.body
66
+ puts response.headers
67
+
68
+ ##################################################
69
+ # Retrieve all BCC mail settings #
70
+ # GET /mail_settings/bcc #
71
+
72
+ response = sg.client.mail_settings.bcc.get()
73
+ puts response.status_code
74
+ puts response.body
75
+ puts response.headers
76
+
77
+ ##################################################
78
+ # Update bounce purge mail settings #
79
+ # PATCH /mail_settings/bounce_purge #
80
+
81
+ data = JSON.parse('{
82
+ "enabled": true,
83
+ "hard_bounces": 5,
84
+ "soft_bounces": 5
85
+ }')
86
+ response = sg.client.mail_settings.bounce_purge.patch(request_body: data)
87
+ puts response.status_code
88
+ puts response.body
89
+ puts response.headers
90
+
91
+ ##################################################
92
+ # Retrieve bounce purge mail settings #
93
+ # GET /mail_settings/bounce_purge #
94
+
95
+ response = sg.client.mail_settings.bounce_purge.get()
96
+ puts response.status_code
97
+ puts response.body
98
+ puts response.headers
99
+
100
+ ##################################################
101
+ # Update footer mail settings #
102
+ # PATCH /mail_settings/footer #
103
+
104
+ data = JSON.parse('{
105
+ "enabled": true,
106
+ "html_content": "...",
107
+ "plain_content": "..."
108
+ }')
109
+ response = sg.client.mail_settings.footer.patch(request_body: data)
110
+ puts response.status_code
111
+ puts response.body
112
+ puts response.headers
113
+
114
+ ##################################################
115
+ # Retrieve footer mail settings #
116
+ # GET /mail_settings/footer #
117
+
118
+ response = sg.client.mail_settings.footer.get()
119
+ puts response.status_code
120
+ puts response.body
121
+ puts response.headers
122
+
123
+ ##################################################
124
+ # Update forward bounce mail settings #
125
+ # PATCH /mail_settings/forward_bounce #
126
+
127
+ data = JSON.parse('{
128
+ "email": "example@example.com",
129
+ "enabled": true
130
+ }')
131
+ response = sg.client.mail_settings.forward_bounce.patch(request_body: data)
132
+ puts response.status_code
133
+ puts response.body
134
+ puts response.headers
135
+
136
+ ##################################################
137
+ # Retrieve forward bounce mail settings #
138
+ # GET /mail_settings/forward_bounce #
139
+
140
+ response = sg.client.mail_settings.forward_bounce.get()
141
+ puts response.status_code
142
+ puts response.body
143
+ puts response.headers
144
+
145
+ ##################################################
146
+ # Update forward spam mail settings #
147
+ # PATCH /mail_settings/forward_spam #
148
+
149
+ data = JSON.parse('{
150
+ "email": "",
151
+ "enabled": false
152
+ }')
153
+ response = sg.client.mail_settings.forward_spam.patch(request_body: data)
154
+ puts response.status_code
155
+ puts response.body
156
+ puts response.headers
157
+
158
+ ##################################################
159
+ # Retrieve forward spam mail settings #
160
+ # GET /mail_settings/forward_spam #
161
+
162
+ response = sg.client.mail_settings.forward_spam.get()
163
+ puts response.status_code
164
+ puts response.body
165
+ puts response.headers
166
+
167
+ ##################################################
168
+ # Update plain content mail settings #
169
+ # PATCH /mail_settings/plain_content #
170
+
171
+ data = JSON.parse('{
172
+ "enabled": false
173
+ }')
174
+ response = sg.client.mail_settings.plain_content.patch(request_body: data)
175
+ puts response.status_code
176
+ puts response.body
177
+ puts response.headers
178
+
179
+ ##################################################
180
+ # Retrieve plain content mail settings #
181
+ # GET /mail_settings/plain_content #
182
+
183
+ response = sg.client.mail_settings.plain_content.get()
184
+ puts response.status_code
185
+ puts response.body
186
+ puts response.headers
187
+
188
+ ##################################################
189
+ # Update spam check mail settings #
190
+ # PATCH /mail_settings/spam_check #
191
+
192
+ data = JSON.parse('{
193
+ "enabled": true,
194
+ "max_score": 5,
195
+ "url": "url"
196
+ }')
197
+ response = sg.client.mail_settings.spam_check.patch(request_body: data)
198
+ puts response.status_code
199
+ puts response.body
200
+ puts response.headers
201
+
202
+ ##################################################
203
+ # Retrieve spam check mail settings #
204
+ # GET /mail_settings/spam_check #
205
+
206
+ response = sg.client.mail_settings.spam_check.get()
207
+ puts response.status_code
208
+ puts response.body
209
+ puts response.headers
210
+
211
+ ##################################################
212
+ # Update template mail settings #
213
+ # PATCH /mail_settings/template #
214
+
215
+ data = JSON.parse('{
216
+ "enabled": true,
217
+ "html_content": "<% body %>"
218
+ }')
219
+ response = sg.client.mail_settings.template.patch(request_body: data)
220
+ puts response.status_code
221
+ puts response.body
222
+ puts response.headers
223
+
224
+ ##################################################
225
+ # Retrieve legacy template mail settings #
226
+ # GET /mail_settings/template #
227
+
228
+ response = sg.client.mail_settings.template.get()
229
+ puts response.status_code
230
+ puts response.body
231
+ puts response.headers
232
+
@@ -0,0 +1,52 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Returns a list of all partner settings. #
22
+ # GET /partner_settings #
23
+
24
+ params = JSON.parse('{"limit": 1, "offset": 1}')
25
+ response = sg.client.partner_settings.get(query_params: params)
26
+ puts response.status_code
27
+ puts response.body
28
+ puts response.headers
29
+
30
+ ##################################################
31
+ # Updates New Relic partner settings. #
32
+ # PATCH /partner_settings/new_relic #
33
+
34
+ data = JSON.parse('{
35
+ "enable_subuser_statistics": true,
36
+ "enabled": true,
37
+ "license_key": ""
38
+ }')
39
+ response = sg.client.partner_settings.new_relic.patch(request_body: data)
40
+ puts response.status_code
41
+ puts response.body
42
+ puts response.headers
43
+
44
+ ##################################################
45
+ # Returns all New Relic partner settings. #
46
+ # GET /partner_settings/new_relic #
47
+
48
+ response = sg.client.partner_settings.new_relic.get()
49
+ puts response.status_code
50
+ puts response.body
51
+ puts response.headers
52
+
@@ -0,0 +1,28 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Retrieve a list of scopes for which this user has access. #
22
+ # GET /scopes #
23
+
24
+ response = sg.client.scopes.get()
25
+ puts response.status_code
26
+ puts response.body
27
+ puts response.headers
28
+
@@ -0,0 +1,29 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Retrieve global email statistics #
22
+ # GET /stats #
23
+
24
+ params = JSON.parse('{"aggregated_by": "day", "limit": 1, "start_date": "2016-01-01", "end_date": "2016-04-01", "offset": 1}')
25
+ response = sg.client.stats.get(query_params: params)
26
+ puts response.status_code
27
+ puts response.body
28
+ puts response.headers
29
+
@@ -0,0 +1,182 @@
1
+ require 'sendgrid-ruby'
2
+
3
+
4
+ sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
5
+
6
+
7
+ import com.fasterxml.jackson.databind.JsonNode;
8
+ import com.fasterxml.jackson.databind.ObjectMapper;
9
+
10
+ import com.sendgrid.Client;
11
+ import com.sendgrid.Method;
12
+ import com.sendgrid.Request;
13
+ import com.sendgrid.Response;
14
+ import com.sendgrid.SendGrid;
15
+
16
+ import java.io.IOException;
17
+ import java.util.HashMap;
18
+ import java.util.Map;
19
+
20
+ ##################################################
21
+ # Create Subuser #
22
+ # POST /subusers #
23
+
24
+ data = JSON.parse('{
25
+ "email": "John@example.com",
26
+ "ips": [
27
+ "1.1.1.1",
28
+ "2.2.2.2"
29
+ ],
30
+ "password": "johns_password",
31
+ "username": "John@example.com"
32
+ }')
33
+ response = sg.client.subusers.post(request_body: data)
34
+ puts response.status_code
35
+ puts response.body
36
+ puts response.headers
37
+
38
+ ##################################################
39
+ # List all Subusers #
40
+ # GET /subusers #
41
+
42
+ params = JSON.parse('{"username": "test_string", "limit": 0, "offset": 0}')
43
+ response = sg.client.subusers.get(query_params: params)
44
+ puts response.status_code
45
+ puts response.body
46
+ puts response.headers
47
+
48
+ ##################################################
49
+ # Retrieve Subuser Reputations #
50
+ # GET /subusers/reputations #
51
+
52
+ params = JSON.parse('{"usernames": "test_string"}')
53
+ response = sg.client.subusers.reputations.get(query_params: params)
54
+ puts response.status_code
55
+ puts response.body
56
+ puts response.headers
57
+
58
+ ##################################################
59
+ # Retrieve email statistics for your subusers. #
60
+ # GET /subusers/stats #
61
+
62
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01", "subusers": "test_string"}')
63
+ response = sg.client.subusers.stats.get(query_params: params)
64
+ puts response.status_code
65
+ puts response.body
66
+ puts response.headers
67
+
68
+ ##################################################
69
+ # Retrieve monthly stats for all subusers #
70
+ # GET /subusers/stats/monthly #
71
+
72
+ params = JSON.parse('{"subuser": "test_string", "limit": 1, "sort_by_metric": "test_string", "offset": 1, "date": "test_string", "sort_by_direction": "asc"}')
73
+ response = sg.client.subusers.stats.monthly.get(query_params: params)
74
+ puts response.status_code
75
+ puts response.body
76
+ puts response.headers
77
+
78
+ ##################################################
79
+ # Retrieve the totals for each email statistic metric for all subusers. #
80
+ # GET /subusers/stats/sums #
81
+
82
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "sort_by_metric": "test_string", "offset": 1, "start_date": "2016-01-01", "sort_by_direction": "asc"}')
83
+ response = sg.client.subusers.stats.sums.get(query_params: params)
84
+ puts response.status_code
85
+ puts response.body
86
+ puts response.headers
87
+
88
+ ##################################################
89
+ # Enable/disable a subuser #
90
+ # PATCH /subusers/{subuser_name} #
91
+
92
+ data = JSON.parse('{
93
+ "disabled": false
94
+ }')
95
+ subuser_name = "test_url_param"
96
+ response = sg.client.subusers._(subuser_name).patch(request_body: data)
97
+ puts response.status_code
98
+ puts response.body
99
+ puts response.headers
100
+
101
+ ##################################################
102
+ # Delete a subuser #
103
+ # DELETE /subusers/{subuser_name} #
104
+
105
+ subuser_name = "test_url_param"
106
+ response = sg.client.subusers._(subuser_name).delete()
107
+ puts response.status_code
108
+ puts response.body
109
+ puts response.headers
110
+
111
+ ##################################################
112
+ # Update IPs assigned to a subuser #
113
+ # PUT /subusers/{subuser_name}/ips #
114
+
115
+ data = JSON.parse('[
116
+ "127.0.0.1"
117
+ ]')
118
+ subuser_name = "test_url_param"
119
+ response = sg.client.subusers._(subuser_name).ips.put(request_body: data)
120
+ puts response.status_code
121
+ puts response.body
122
+ puts response.headers
123
+
124
+ ##################################################
125
+ # Update Monitor Settings for a subuser #
126
+ # PUT /subusers/{subuser_name}/monitor #
127
+
128
+ data = JSON.parse('{
129
+ "email": "example@example.com",
130
+ "frequency": 500
131
+ }')
132
+ subuser_name = "test_url_param"
133
+ response = sg.client.subusers._(subuser_name).monitor.put(request_body: data)
134
+ puts response.status_code
135
+ puts response.body
136
+ puts response.headers
137
+
138
+ ##################################################
139
+ # Create monitor settings #
140
+ # POST /subusers/{subuser_name}/monitor #
141
+
142
+ data = JSON.parse('{
143
+ "email": "example@example.com",
144
+ "frequency": 50000
145
+ }')
146
+ subuser_name = "test_url_param"
147
+ response = sg.client.subusers._(subuser_name).monitor.post(request_body: data)
148
+ puts response.status_code
149
+ puts response.body
150
+ puts response.headers
151
+
152
+ ##################################################
153
+ # Retrieve monitor settings for a subuser #
154
+ # GET /subusers/{subuser_name}/monitor #
155
+
156
+ subuser_name = "test_url_param"
157
+ response = sg.client.subusers._(subuser_name).monitor.get()
158
+ puts response.status_code
159
+ puts response.body
160
+ puts response.headers
161
+
162
+ ##################################################
163
+ # Delete monitor settings #
164
+ # DELETE /subusers/{subuser_name}/monitor #
165
+
166
+ subuser_name = "test_url_param"
167
+ response = sg.client.subusers._(subuser_name).monitor.delete()
168
+ puts response.status_code
169
+ puts response.body
170
+ puts response.headers
171
+
172
+ ##################################################
173
+ # Retrieve the monthly email statistics for a single subuser #
174
+ # GET /subusers/{subuser_name}/stats/monthly #
175
+
176
+ params = JSON.parse('{"date": "test_string", "sort_by_direction": "asc", "limit": 0, "sort_by_metric": "test_string", "offset": 1}')
177
+ subuser_name = "test_url_param"
178
+ response = sg.client.subusers._(subuser_name).stats.monthly.get(query_params: params)
179
+ puts response.status_code
180
+ puts response.body
181
+ puts response.headers
182
+