sendgrid-ruby 1.1.6 → 6.0.4
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 +5 -5
- data/.codeclimate.yml +21 -0
- data/.env_sample +1 -3
- data/.gitignore +1 -0
- data/.travis.yml +28 -17
- data/CHANGELOG.md +231 -1
- data/CODE_OF_CONDUCT.md +73 -0
- data/CONTRIBUTING.md +214 -0
- data/Gemfile +5 -4
- data/ISSUE_TEMPLATE.md +26 -0
- data/LICENSE.md +21 -0
- data/Makefile +7 -0
- data/PULL_REQUEST_TEMPLATE.md +31 -0
- data/README.md +161 -225
- data/Rakefile +9 -2
- data/TROUBLESHOOTING.md +137 -0
- data/UPGRADE.md +5 -0
- data/USAGE.md +5037 -0
- data/USE_CASES.md +377 -0
- data/config.ru +4 -0
- data/docker/Dockerfile +12 -0
- data/docker/README.md +30 -0
- data/examples/accesssettings/accesssettings.rb +83 -0
- data/examples/alerts/alerts.rb +62 -0
- data/examples/apikeys/apikeys.rb +84 -0
- data/examples/asm/asm.rb +173 -0
- data/examples/browsers/browsers.rb +16 -0
- data/examples/campaigns/campaigns.rb +153 -0
- data/examples/categories/categories.rb +36 -0
- data/examples/clients/clients.rb +27 -0
- data/examples/contactdb/contactdb.rb +395 -0
- data/examples/devices/devices.rb +16 -0
- data/examples/geo/geo.rb +16 -0
- data/examples/helpers/mail/example.rb +147 -0
- data/examples/helpers/settings/example.rb +23 -0
- data/examples/helpers/stats/example.rb +42 -0
- data/examples/ips/ips.rb +167 -0
- data/examples/mail/mail.rb +173 -0
- data/examples/mailboxproviders/mailboxproviders.rb +16 -0
- data/examples/mailsettings/mailsettings.rb +219 -0
- data/examples/partnersettings/partnersettings.rb +39 -0
- data/examples/scopes/scopes.rb +61 -0
- data/examples/senderauthentication/senderauthentication.rb +310 -0
- data/examples/senders/senders.rb +98 -0
- data/examples/stats/stats.rb +16 -0
- data/examples/subusers/subusers.rb +169 -0
- data/examples/suppression/suppression.rb +201 -0
- data/examples/templates/templates.rb +129 -0
- data/examples/trackingsettings/trackingsettings.rb +110 -0
- data/examples/user/user.rb +293 -0
- data/gemfiles/Sinatra_1.gemfile +6 -0
- data/gemfiles/Sinatra_2.gemfile +6 -0
- data/lib/sendgrid/client.rb +33 -57
- data/lib/sendgrid/helpers/inbound/README.md +98 -0
- data/lib/sendgrid/helpers/inbound/app.rb +32 -0
- data/lib/sendgrid/helpers/inbound/config.yml +26 -0
- data/lib/sendgrid/helpers/inbound/public/index.html +10 -0
- data/lib/sendgrid/helpers/inbound/sample_data/default_data.txt +58 -0
- data/lib/sendgrid/helpers/inbound/sample_data/raw_data.txt +57 -0
- data/lib/sendgrid/helpers/inbound/sample_data/raw_data_with_attachments.txt +298 -0
- data/lib/sendgrid/helpers/inbound/send.rb +26 -0
- data/lib/sendgrid/helpers/ip_management/ip_management.rb +17 -0
- data/lib/sendgrid/helpers/mail/README.md +14 -0
- data/lib/sendgrid/helpers/mail/asm.rb +33 -0
- data/lib/sendgrid/helpers/mail/attachment.rb +86 -0
- data/lib/sendgrid/helpers/mail/bcc_settings.rb +33 -0
- data/lib/sendgrid/helpers/mail/bypass_list_management.rb +43 -0
- data/lib/sendgrid/helpers/mail/category.rb +20 -0
- data/lib/sendgrid/helpers/mail/click_tracking.rb +33 -0
- data/lib/sendgrid/helpers/mail/content.rb +20 -0
- data/lib/sendgrid/helpers/mail/custom_arg.rb +24 -0
- data/lib/sendgrid/helpers/mail/email.rb +29 -0
- data/lib/sendgrid/helpers/mail/footer.rb +43 -0
- data/lib/sendgrid/helpers/mail/ganalytics.rb +74 -0
- data/lib/sendgrid/helpers/mail/header.rb +24 -0
- data/lib/sendgrid/helpers/mail/mail.rb +140 -0
- data/lib/sendgrid/helpers/mail/mail_settings.rb +63 -0
- data/lib/sendgrid/helpers/mail/open_tracking.rb +33 -0
- data/lib/sendgrid/helpers/mail/personalization.rb +82 -0
- data/lib/sendgrid/helpers/mail/section.rb +24 -0
- data/lib/sendgrid/helpers/mail/spam_check.rb +43 -0
- data/lib/sendgrid/helpers/mail/subscription_tracking.rb +53 -0
- data/lib/sendgrid/helpers/mail/substitution.rb +24 -0
- data/lib/sendgrid/helpers/mail/tracking_settings.rb +53 -0
- data/lib/sendgrid/helpers/permissions/scope.rb +28 -0
- data/lib/sendgrid/helpers/permissions/scopes.yml +309 -0
- data/lib/sendgrid/helpers/settings/README.md +14 -0
- data/lib/sendgrid/helpers/settings/mail_settings_dto.rb +13 -0
- data/lib/sendgrid/helpers/settings/partner_settings_dto.rb +13 -0
- data/lib/sendgrid/helpers/settings/settings.rb +28 -0
- data/lib/sendgrid/helpers/settings/tracking_settings_dto.rb +24 -0
- data/lib/sendgrid/helpers/settings/user_settings_dto.rb +13 -0
- data/lib/sendgrid/helpers/stats/email_stats.rb +46 -0
- data/lib/sendgrid/helpers/stats/metrics.rb +35 -0
- data/lib/sendgrid/helpers/stats/stats_response.rb +31 -0
- data/lib/sendgrid/version.rb +1 -1
- data/lib/sendgrid-ruby.rb +27 -6
- data/mail_helper_v3.md +390 -0
- data/sendgrid-ruby.gemspec +13 -17
- data/spec/sendgrid/helpers/ip_management/ip_management_spec.rb +12 -0
- data/spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb +32 -0
- data/spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb +24 -0
- data/spec/sendgrid/helpers/settings/settings_spec.rb +25 -0
- data/spec/sendgrid/helpers/settings/tracking_settings_dto_spec.rb +27 -0
- data/spec/sendgrid/helpers/settings/user_settings_dto_spec.rb +24 -0
- data/spec/sendgrid/helpers/stats/email_stats_spec.rb +112 -0
- data/spec/sendgrid/helpers/stats/metrics_spec.rb +46 -0
- data/spec/sendgrid/helpers/stats/stats_response_spec.rb +76 -0
- data/spec/spec_helper.rb +10 -1
- data/test/prism.sh +42 -0
- data/test/sendgrid/helpers/mail/test_attachment.rb +35 -0
- data/test/sendgrid/helpers/mail/test_category.rb +27 -0
- data/test/sendgrid/helpers/mail/test_email.rb +34 -0
- data/test/sendgrid/helpers/mail/test_mail.rb +261 -0
- data/test/sendgrid/helpers/mail/test_personalizations.rb +161 -0
- data/test/sendgrid/permissions/test_scopes.rb +38 -0
- data/test/sendgrid/test_sendgrid-ruby.rb +2751 -0
- metadata +149 -115
- data/.rspec +0 -2
- data/.rubocop.yml +0 -30
- data/FETCH_HEAD +0 -0
- data/Guardfile +0 -10
- data/LICENSE.txt +0 -22
- data/example.rb +0 -41
- data/lib/sendgrid/exceptions.rb +0 -7
- data/lib/sendgrid/mail.rb +0 -182
- data/lib/sendgrid/recipient.rb +0 -29
- data/lib/sendgrid/response.rb +0 -14
- data/lib/sendgrid/template.rb +0 -26
- data/lib/sendgrid/template_mailer.rb +0 -59
- data/spec/lib/sendgrid/client_spec.rb +0 -87
- data/spec/lib/sendgrid/mail_spec.rb +0 -151
- data/spec/lib/sendgrid/recipient_spec.rb +0 -91
- data/spec/lib/sendgrid/template_mailer_spec.rb +0 -86
- data/spec/lib/sendgrid/template_spec.rb +0 -61
- data/spec/lib/sendgrid_spec.rb +0 -7
data/examples/asm/asm.rb
ADDED
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
require 'sendgrid-ruby'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
##################################################
|
|
8
|
+
# Create a new suppression group #
|
|
9
|
+
# POST /asm/groups #
|
|
10
|
+
|
|
11
|
+
data = JSON.parse('{
|
|
12
|
+
"description": "Suggestions for products our users might like.",
|
|
13
|
+
"is_default": true,
|
|
14
|
+
"name": "Product Suggestions"
|
|
15
|
+
}')
|
|
16
|
+
response = sg.client.asm.groups.post(request_body: data)
|
|
17
|
+
puts response.status_code
|
|
18
|
+
puts response.body
|
|
19
|
+
puts response.headers
|
|
20
|
+
|
|
21
|
+
##################################################
|
|
22
|
+
# Retrieve information about multiple suppression groups #
|
|
23
|
+
# GET /asm/groups #
|
|
24
|
+
|
|
25
|
+
params = JSON.parse('{"id": 1}')
|
|
26
|
+
response = sg.client.asm.groups.get(query_params: params)
|
|
27
|
+
puts response.status_code
|
|
28
|
+
puts response.body
|
|
29
|
+
puts response.headers
|
|
30
|
+
|
|
31
|
+
##################################################
|
|
32
|
+
# Update a suppression group. #
|
|
33
|
+
# PATCH /asm/groups/{group_id} #
|
|
34
|
+
|
|
35
|
+
data = JSON.parse('{
|
|
36
|
+
"description": "Suggestions for items our users might like.",
|
|
37
|
+
"id": 103,
|
|
38
|
+
"name": "Item Suggestions"
|
|
39
|
+
}')
|
|
40
|
+
group_id = "test_url_param"
|
|
41
|
+
response = sg.client.asm.groups._(group_id).patch(request_body: data)
|
|
42
|
+
puts response.status_code
|
|
43
|
+
puts response.body
|
|
44
|
+
puts response.headers
|
|
45
|
+
|
|
46
|
+
##################################################
|
|
47
|
+
# Get information on a single suppression group. #
|
|
48
|
+
# GET /asm/groups/{group_id} #
|
|
49
|
+
|
|
50
|
+
group_id = "test_url_param"
|
|
51
|
+
response = sg.client.asm.groups._(group_id).get()
|
|
52
|
+
puts response.status_code
|
|
53
|
+
puts response.body
|
|
54
|
+
puts response.headers
|
|
55
|
+
|
|
56
|
+
##################################################
|
|
57
|
+
# Delete a suppression group. #
|
|
58
|
+
# DELETE /asm/groups/{group_id} #
|
|
59
|
+
|
|
60
|
+
group_id = "test_url_param"
|
|
61
|
+
response = sg.client.asm.groups._(group_id).delete()
|
|
62
|
+
puts response.status_code
|
|
63
|
+
puts response.body
|
|
64
|
+
puts response.headers
|
|
65
|
+
|
|
66
|
+
##################################################
|
|
67
|
+
# Add suppressions to a suppression group #
|
|
68
|
+
# POST /asm/groups/{group_id}/suppressions #
|
|
69
|
+
|
|
70
|
+
data = JSON.parse('{
|
|
71
|
+
"recipient_emails": [
|
|
72
|
+
"test1@example.com",
|
|
73
|
+
"test2@example.com"
|
|
74
|
+
]
|
|
75
|
+
}')
|
|
76
|
+
group_id = "test_url_param"
|
|
77
|
+
response = sg.client.asm.groups._(group_id).suppressions.post(request_body: data)
|
|
78
|
+
puts response.status_code
|
|
79
|
+
puts response.body
|
|
80
|
+
puts response.headers
|
|
81
|
+
|
|
82
|
+
##################################################
|
|
83
|
+
# Retrieve all suppressions for a suppression group #
|
|
84
|
+
# GET /asm/groups/{group_id}/suppressions #
|
|
85
|
+
|
|
86
|
+
group_id = "test_url_param"
|
|
87
|
+
response = sg.client.asm.groups._(group_id).suppressions.get()
|
|
88
|
+
puts response.status_code
|
|
89
|
+
puts response.body
|
|
90
|
+
puts response.headers
|
|
91
|
+
|
|
92
|
+
##################################################
|
|
93
|
+
# Search for suppressions within a group #
|
|
94
|
+
# POST /asm/groups/{group_id}/suppressions/search #
|
|
95
|
+
|
|
96
|
+
data = JSON.parse('{
|
|
97
|
+
"recipient_emails": [
|
|
98
|
+
"exists1@example.com",
|
|
99
|
+
"exists2@example.com",
|
|
100
|
+
"doesnotexists@example.com"
|
|
101
|
+
]
|
|
102
|
+
}')
|
|
103
|
+
group_id = "test_url_param"
|
|
104
|
+
response = sg.client.asm.groups._(group_id).suppressions.search.post(request_body: data)
|
|
105
|
+
puts response.status_code
|
|
106
|
+
puts response.body
|
|
107
|
+
puts response.headers
|
|
108
|
+
|
|
109
|
+
##################################################
|
|
110
|
+
# Delete a suppression from a suppression group #
|
|
111
|
+
# DELETE /asm/groups/{group_id}/suppressions/{email} #
|
|
112
|
+
|
|
113
|
+
group_id = "test_url_param"
|
|
114
|
+
email = "test_url_param"
|
|
115
|
+
response = sg.client.asm.groups._(group_id).suppressions._(email).delete()
|
|
116
|
+
puts response.status_code
|
|
117
|
+
puts response.body
|
|
118
|
+
puts response.headers
|
|
119
|
+
|
|
120
|
+
##################################################
|
|
121
|
+
# Retrieve all suppressions #
|
|
122
|
+
# GET /asm/suppressions #
|
|
123
|
+
|
|
124
|
+
response = sg.client.asm.suppressions.get()
|
|
125
|
+
puts response.status_code
|
|
126
|
+
puts response.body
|
|
127
|
+
puts response.headers
|
|
128
|
+
|
|
129
|
+
##################################################
|
|
130
|
+
# Add recipient addresses to the global suppression group. #
|
|
131
|
+
# POST /asm/suppressions/global #
|
|
132
|
+
|
|
133
|
+
data = JSON.parse('{
|
|
134
|
+
"recipient_emails": [
|
|
135
|
+
"test1@example.com",
|
|
136
|
+
"test2@example.com"
|
|
137
|
+
]
|
|
138
|
+
}')
|
|
139
|
+
response = sg.client.asm.suppressions.global.post(request_body: data)
|
|
140
|
+
puts response.status_code
|
|
141
|
+
puts response.body
|
|
142
|
+
puts response.headers
|
|
143
|
+
|
|
144
|
+
##################################################
|
|
145
|
+
# Retrieve a Global Suppression #
|
|
146
|
+
# GET /asm/suppressions/global/{email} #
|
|
147
|
+
|
|
148
|
+
email = "test_url_param"
|
|
149
|
+
response = sg.client.asm.suppressions.global._(email).get()
|
|
150
|
+
puts response.status_code
|
|
151
|
+
puts response.body
|
|
152
|
+
puts response.headers
|
|
153
|
+
|
|
154
|
+
##################################################
|
|
155
|
+
# Delete a Global Suppression #
|
|
156
|
+
# DELETE /asm/suppressions/global/{email} #
|
|
157
|
+
|
|
158
|
+
email = "test_url_param"
|
|
159
|
+
response = sg.client.asm.suppressions.global._(email).delete()
|
|
160
|
+
puts response.status_code
|
|
161
|
+
puts response.body
|
|
162
|
+
puts response.headers
|
|
163
|
+
|
|
164
|
+
##################################################
|
|
165
|
+
# Retrieve all suppression groups for an email address #
|
|
166
|
+
# GET /asm/suppressions/{email} #
|
|
167
|
+
|
|
168
|
+
email = "test_url_param"
|
|
169
|
+
response = sg.client.asm.suppressions._(email).get()
|
|
170
|
+
puts response.status_code
|
|
171
|
+
puts response.body
|
|
172
|
+
puts response.headers
|
|
173
|
+
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
require 'sendgrid-ruby'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
##################################################
|
|
8
|
+
# Retrieve email statistics by browser. #
|
|
9
|
+
# GET /browsers/stats #
|
|
10
|
+
|
|
11
|
+
params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "browsers": "test_string", "limit": "test_string", "offset": "test_string", "start_date": "2016-01-01"}')
|
|
12
|
+
response = sg.client.browsers.stats.get(query_params: params)
|
|
13
|
+
puts response.status_code
|
|
14
|
+
puts response.body
|
|
15
|
+
puts response.headers
|
|
16
|
+
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
require 'sendgrid-ruby'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
##################################################
|
|
8
|
+
# Create a Campaign #
|
|
9
|
+
# POST /campaigns #
|
|
10
|
+
|
|
11
|
+
data = JSON.parse('{
|
|
12
|
+
"categories": [
|
|
13
|
+
"spring line"
|
|
14
|
+
],
|
|
15
|
+
"custom_unsubscribe_url": "",
|
|
16
|
+
"html_content": "<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>",
|
|
17
|
+
"ip_pool": "marketing",
|
|
18
|
+
"list_ids": [
|
|
19
|
+
110,
|
|
20
|
+
124
|
|
21
|
+
],
|
|
22
|
+
"plain_content": "Check out our spring line!",
|
|
23
|
+
"segment_ids": [
|
|
24
|
+
110
|
|
25
|
+
],
|
|
26
|
+
"sender_id": 124451,
|
|
27
|
+
"subject": "New Products for Spring!",
|
|
28
|
+
"suppression_group_id": 42,
|
|
29
|
+
"title": "March Newsletter"
|
|
30
|
+
}')
|
|
31
|
+
response = sg.client.campaigns.post(request_body: data)
|
|
32
|
+
puts response.status_code
|
|
33
|
+
puts response.body
|
|
34
|
+
puts response.headers
|
|
35
|
+
|
|
36
|
+
##################################################
|
|
37
|
+
# Retrieve all Campaigns #
|
|
38
|
+
# GET /campaigns #
|
|
39
|
+
|
|
40
|
+
params = JSON.parse('{"limit": 1, "offset": 1}')
|
|
41
|
+
response = sg.client.campaigns.get(query_params: params)
|
|
42
|
+
puts response.status_code
|
|
43
|
+
puts response.body
|
|
44
|
+
puts response.headers
|
|
45
|
+
|
|
46
|
+
##################################################
|
|
47
|
+
# Update a Campaign #
|
|
48
|
+
# PATCH /campaigns/{campaign_id} #
|
|
49
|
+
|
|
50
|
+
data = JSON.parse('{
|
|
51
|
+
"categories": [
|
|
52
|
+
"summer line"
|
|
53
|
+
],
|
|
54
|
+
"html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>",
|
|
55
|
+
"plain_content": "Check out our summer line!",
|
|
56
|
+
"subject": "New Products for Summer!",
|
|
57
|
+
"title": "May Newsletter"
|
|
58
|
+
}')
|
|
59
|
+
campaign_id = "test_url_param"
|
|
60
|
+
response = sg.client.campaigns._(campaign_id).patch(request_body: data)
|
|
61
|
+
puts response.status_code
|
|
62
|
+
puts response.body
|
|
63
|
+
puts response.headers
|
|
64
|
+
|
|
65
|
+
##################################################
|
|
66
|
+
# Retrieve a single campaign #
|
|
67
|
+
# GET /campaigns/{campaign_id} #
|
|
68
|
+
|
|
69
|
+
campaign_id = "test_url_param"
|
|
70
|
+
response = sg.client.campaigns._(campaign_id).get()
|
|
71
|
+
puts response.status_code
|
|
72
|
+
puts response.body
|
|
73
|
+
puts response.headers
|
|
74
|
+
|
|
75
|
+
##################################################
|
|
76
|
+
# Delete a Campaign #
|
|
77
|
+
# DELETE /campaigns/{campaign_id} #
|
|
78
|
+
|
|
79
|
+
campaign_id = "test_url_param"
|
|
80
|
+
response = sg.client.campaigns._(campaign_id).delete()
|
|
81
|
+
puts response.status_code
|
|
82
|
+
puts response.body
|
|
83
|
+
puts response.headers
|
|
84
|
+
|
|
85
|
+
##################################################
|
|
86
|
+
# Update a Scheduled Campaign #
|
|
87
|
+
# PATCH /campaigns/{campaign_id}/schedules #
|
|
88
|
+
|
|
89
|
+
data = JSON.parse('{
|
|
90
|
+
"send_at": 1489451436
|
|
91
|
+
}')
|
|
92
|
+
campaign_id = "test_url_param"
|
|
93
|
+
response = sg.client.campaigns._(campaign_id).schedules.patch(request_body: data)
|
|
94
|
+
puts response.status_code
|
|
95
|
+
puts response.body
|
|
96
|
+
puts response.headers
|
|
97
|
+
|
|
98
|
+
##################################################
|
|
99
|
+
# Schedule a Campaign #
|
|
100
|
+
# POST /campaigns/{campaign_id}/schedules #
|
|
101
|
+
|
|
102
|
+
data = JSON.parse('{
|
|
103
|
+
"send_at": 1489771528
|
|
104
|
+
}')
|
|
105
|
+
campaign_id = "test_url_param"
|
|
106
|
+
response = sg.client.campaigns._(campaign_id).schedules.post(request_body: data)
|
|
107
|
+
puts response.status_code
|
|
108
|
+
puts response.body
|
|
109
|
+
puts response.headers
|
|
110
|
+
|
|
111
|
+
##################################################
|
|
112
|
+
# View Scheduled Time of a Campaign #
|
|
113
|
+
# GET /campaigns/{campaign_id}/schedules #
|
|
114
|
+
|
|
115
|
+
campaign_id = "test_url_param"
|
|
116
|
+
response = sg.client.campaigns._(campaign_id).schedules.get()
|
|
117
|
+
puts response.status_code
|
|
118
|
+
puts response.body
|
|
119
|
+
puts response.headers
|
|
120
|
+
|
|
121
|
+
##################################################
|
|
122
|
+
# Unschedule a Scheduled Campaign #
|
|
123
|
+
# DELETE /campaigns/{campaign_id}/schedules #
|
|
124
|
+
|
|
125
|
+
campaign_id = "test_url_param"
|
|
126
|
+
response = sg.client.campaigns._(campaign_id).schedules.delete()
|
|
127
|
+
puts response.status_code
|
|
128
|
+
puts response.body
|
|
129
|
+
puts response.headers
|
|
130
|
+
|
|
131
|
+
##################################################
|
|
132
|
+
# Send a Campaign #
|
|
133
|
+
# POST /campaigns/{campaign_id}/schedules/now #
|
|
134
|
+
|
|
135
|
+
campaign_id = "test_url_param"
|
|
136
|
+
response = sg.client.campaigns._(campaign_id).schedules.now.post()
|
|
137
|
+
puts response.status_code
|
|
138
|
+
puts response.body
|
|
139
|
+
puts response.headers
|
|
140
|
+
|
|
141
|
+
##################################################
|
|
142
|
+
# Send a Test Campaign #
|
|
143
|
+
# POST /campaigns/{campaign_id}/schedules/test #
|
|
144
|
+
|
|
145
|
+
data = JSON.parse('{
|
|
146
|
+
"to": "your.email@example.com"
|
|
147
|
+
}')
|
|
148
|
+
campaign_id = "test_url_param"
|
|
149
|
+
response = sg.client.campaigns._(campaign_id).schedules.test.post(request_body: data)
|
|
150
|
+
puts response.status_code
|
|
151
|
+
puts response.body
|
|
152
|
+
puts response.headers
|
|
153
|
+
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
require 'sendgrid-ruby'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
##################################################
|
|
8
|
+
# Retrieve all categories #
|
|
9
|
+
# GET /categories #
|
|
10
|
+
|
|
11
|
+
params = JSON.parse('{"category": "test_string", "limit": 1, "offset": 1}')
|
|
12
|
+
response = sg.client.categories.get(query_params: params)
|
|
13
|
+
puts response.status_code
|
|
14
|
+
puts response.body
|
|
15
|
+
puts response.headers
|
|
16
|
+
|
|
17
|
+
##################################################
|
|
18
|
+
# Retrieve Email Statistics for Categories #
|
|
19
|
+
# GET /categories/stats #
|
|
20
|
+
|
|
21
|
+
params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01", "categories": "test_string"}')
|
|
22
|
+
response = sg.client.categories.stats.get(query_params: params)
|
|
23
|
+
puts response.status_code
|
|
24
|
+
puts response.body
|
|
25
|
+
puts response.headers
|
|
26
|
+
|
|
27
|
+
##################################################
|
|
28
|
+
# Retrieve sums of email stats for each category [Needs: Stats object defined, has category ID?] #
|
|
29
|
+
# GET /categories/stats/sums #
|
|
30
|
+
|
|
31
|
+
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"}')
|
|
32
|
+
response = sg.client.categories.stats.sums.get(query_params: params)
|
|
33
|
+
puts response.status_code
|
|
34
|
+
puts response.body
|
|
35
|
+
puts response.headers
|
|
36
|
+
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'sendgrid-ruby'
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
sg = SendGrid::API.new(api_key: ENV['SENDGRID_API_KEY'])
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
##################################################
|
|
8
|
+
# Retrieve email statistics by client type. #
|
|
9
|
+
# GET /clients/stats #
|
|
10
|
+
|
|
11
|
+
params = JSON.parse('{"aggregated_by": "day", "start_date": "2016-01-01", "end_date": "2016-04-01"}')
|
|
12
|
+
response = sg.client.clients.stats.get(query_params: params)
|
|
13
|
+
puts response.status_code
|
|
14
|
+
puts response.body
|
|
15
|
+
puts response.headers
|
|
16
|
+
|
|
17
|
+
##################################################
|
|
18
|
+
# Retrieve stats by a specific client type. #
|
|
19
|
+
# GET /clients/{client_type}/stats #
|
|
20
|
+
|
|
21
|
+
params = JSON.parse('{"aggregated_by": "day", "start_date": "2016-01-01", "end_date": "2016-04-01"}')
|
|
22
|
+
client_type = "test_url_param"
|
|
23
|
+
response = sg.client.clients._(client_type).stats.get(query_params: params)
|
|
24
|
+
puts response.status_code
|
|
25
|
+
puts response.body
|
|
26
|
+
puts response.headers
|
|
27
|
+
|