sendgrid_webapi 0.0.2 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circleci/config.yml +132 -0
- data/.circleci/setup-rubygems.sh +5 -0
- data/.gitignore +27 -1
- data/.rspec +2 -2
- data/.ruby-version +1 -0
- data/.tool-versions +1 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +103 -79
- data/lib/api_key/management.rb +33 -0
- data/lib/api_key/modules.rb +10 -0
- data/lib/apikey_client.rb +11 -0
- data/lib/base.rb +47 -13
- data/lib/helper.rb +8 -8
- data/lib/sendgrid_webapi.rb +1 -0
- data/lib/sub_user/modules.rb +15 -15
- data/lib/version.rb +2 -2
- data/lib/web_api/blocks.rb +5 -0
- data/lib/web_api/bounces.rb +5 -0
- data/lib/web_api/modules.rb +15 -11
- data/lib/web_api/version.rb +1 -1
- data/lib/webapi_client.rb +1 -1
- data/sendgrid_webapi.gemspec +12 -8
- data/spec/cassettes/client/_modules/_block/should_get_block_emails.yml +29 -41
- data/spec/cassettes/client/_modules/_block/should_get_totals_blocks.yml +36 -0
- data/spec/cassettes/client/_modules/_block/should_try_delete_not_existing_block_email.yml +29 -42
- data/spec/cassettes/client/_modules/_bounce/should_get_bounce_emails.yml +27 -31
- data/spec/cassettes/client/_modules/_bounce/should_get_totals_bounces.yml +36 -0
- data/spec/cassettes/client/_modules/_bounce/should_try_delete_not_existing_bounce_email.yml +27 -32
- data/spec/cassettes/client/_modules/_event_notification/should_delete_event_notification_url.yml +38 -40
- data/spec/cassettes/client/_modules/_event_notification/should_get_event_notification_url.yml +38 -40
- data/spec/cassettes/client/_modules/_event_notification/should_set_event_notification_url.yml +38 -40
- data/spec/cassettes/client/_modules/_invalid_email/should_get_invalid_emails.yml +27 -31
- data/spec/cassettes/client/_modules/_invalid_email/should_try_delete_not_existing_invalid_emails.yml +27 -32
- data/spec/cassettes/client/_modules/_parse_email/should_delete_parse_email.yml +73 -76
- data/spec/cassettes/client/_modules/_parse_email/should_get_parse_email.yml +38 -41
- data/spec/cassettes/client/_modules/_parse_email/should_set_parse_email.yml +38 -40
- data/spec/cassettes/client/_modules/_profile/should_get_profile.yml +39 -43
- data/spec/cassettes/client/_modules/_profile/should_set_first_name.yml +109 -117
- data/spec/cassettes/client/_modules/_spam/should_get_spam_emails.yml +27 -31
- data/spec/cassettes/client/_modules/_spam/should_try_delete_not_existing_spam_emails.yml +27 -32
- data/spec/cassettes/client/_modules/_unsubscribe/should_add_unsubscribe_emails.yml +27 -31
- data/spec/cassettes/client/_modules/_unsubscribe/should_delete_unsubscribe_email.yml +27 -31
- data/spec/cassettes/client/_modules/_unsubscribe/should_get_unsubscribe_emails.yml +27 -32
- data/spec/cassettes/client/_modules/_unsubscribe/should_try_delete_not_existing_unsubscribe_emails.yml +27 -32
- data/spec/cassettes/helper/_create_sub_user_account/should_create_sub_user_account.yml +248 -255
- data/spec/cassettes/helper/_run_sendgrid_query/should_raise_with_unsucessfull_request.yml +39 -38
- data/spec/cassettes/helper/_run_sendgrid_query/should_run_sendgrid_request.yml +38 -40
- data/spec/cassettes/sub_user/_apps/should_activate_app.yml +38 -40
- data/spec/cassettes/sub_user/_apps/should_deactivate_app.yml +38 -40
- data/spec/cassettes/sub_user/_apps/should_get_current_setting_from_one_app.yml +38 -41
- data/spec/cassettes/sub_user/_apps/should_return_available_apps.yml +63 -55
- data/spec/cassettes/sub_user/_apps/should_set_current_app.yml +73 -72
- data/spec/cassettes/sub_user/_authentication/should_auth_a_sub_user.yml +38 -40
- data/spec/cassettes/sub_user/_authentication/should_return_error_with_a_bad_sub_user.yml +38 -40
- data/spec/cassettes/sub_user/_bounces/should_returns_bounce_emails.yml +38 -39
- data/spec/cassettes/sub_user/_bounces/should_tries_to_delete_unexisting_bounce_emails.yml +38 -40
- data/spec/cassettes/sub_user/_event_notification/should_add_event_notification_url.yml +38 -40
- data/spec/cassettes/sub_user/_event_notification/should_delete_event_notification_url.yml +38 -40
- data/spec/cassettes/sub_user/_event_notification/should_get_event_notification_url.yml +38 -40
- data/spec/cassettes/sub_user/_invalid_emails/should_return_invalid_emails.yml +38 -39
- data/spec/cassettes/sub_user/_invalid_emails/should_tries_to_delete_unexisting_invalid_mail.yml +38 -40
- data/spec/cassettes/sub_user/_ip_management/should_return_all_ips_available.yml +38 -40
- data/spec/cassettes/sub_user/_ip_management/should_show_ip_subuser.yml +38 -40
- data/spec/cassettes/sub_user/_limits/should_decrements_credits_for_a_sub_user.yml +73 -77
- data/spec/cassettes/sub_user/_limits/should_delete_all_limits_for_a_sub_user.yml +73 -76
- data/spec/cassettes/sub_user/_limits/should_increments_credits_for_a_sub_user.yml +73 -77
- data/spec/cassettes/sub_user/_limits/should_list_the_limits_for_a_sub_user.yml +38 -40
- data/spec/cassettes/sub_user/_limits/should_reset_all_limits_for_a_sub_user.yml +73 -77
- data/spec/cassettes/sub_user/_limits/should_returns_limits_for_a_sub_user.yml +38 -40
- data/spec/cassettes/sub_user/_limits/should_set_total_credits.yml +38 -40
- data/spec/cassettes/sub_user/_management/should_add_new_subuser.yml +38 -40
- data/spec/cassettes/sub_user/_management/should_disable_sub_user_for_send_email.yml +38 -40
- data/spec/cassettes/sub_user/_management/should_enable_sub_user_for_access_to_website.yml +38 -40
- data/spec/cassettes/sub_user/_management/should_enable_sub_user_for_send_email.yml +38 -40
- data/spec/cassettes/sub_user/_management/should_update_sub_user.yml +38 -40
- data/spec/cassettes/sub_user/_monitor_records/should_add_existing_sub_user_to_monitor_record.yml +73 -78
- data/spec/cassettes/sub_user/_monitor_records/should_create_a_new_monitor_record.yml +73 -78
- data/spec/cassettes/sub_user/_monitor_records/should_delete_a_monitor_record.yml +73 -76
- data/spec/cassettes/sub_user/_monitor_records/should_edit_a_monitor_record.yml +73 -78
- data/spec/cassettes/sub_user/_monitor_records/should_remove_existing_sub_user_from_monitor_record.yml +73 -78
- data/spec/cassettes/sub_user/_parse_email/should_delete_parse_email.yml +73 -76
- data/spec/cassettes/sub_user/_parse_email/should_get_parse_email.yml +38 -41
- data/spec/cassettes/sub_user/_parse_email/should_set_parse_email.yml +38 -40
- data/spec/cassettes/sub_user/_spam/should_return_spam_mails.yml +38 -39
- data/spec/cassettes/sub_user/_spam/should_tries_to_delete_unexisting_spam_mail.yml +38 -40
- data/spec/cassettes/sub_user/_unsubscribes/should_add_bounce_email.yml +38 -40
- data/spec/cassettes/sub_user/_unsubscribes/should_delete_existing_bounce_email.yml +38 -40
- data/spec/cassettes/sub_user/_unsubscribes/should_delete_unexisting_bounce_email.yml +38 -40
- data/spec/cassettes/sub_user/_unsubscribes/should_returns_bounce_emails.yml +38 -40
- data/spec/client_spec.rb +7 -4
- data/spec/helper_spec.rb +9 -9
- data/spec/sub_user_spec.rb +63 -68
- data/test.rb +5 -0
- metadata +90 -58
- data/.travis.yml +0 -5
- data/spec/cassettes/sub_user/_management/should_get_all_subusers.yml +0 -54
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2c4750102028a182ab7e513792ca0f127684c5ce2f59562dbe1997869c7099e9
|
4
|
+
data.tar.gz: 406420e68b953fca19e900acd80ab5914c689941588c4b056239f2f5f64f6971
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d912c4463cb6cf6b77d55444e31302450e395c4b2c0eb14bbd4345b77d83dfbba7b3b5b9b563b0e0fff577a5989a00255c69d731d56c08495bd727eb3f15c358
|
7
|
+
data.tar.gz: 445d7ef45b7cb2b7325405120ef271ab1c6b13d50a902e83c63e5bebe16f95889c722f06555adedabb08ba4e70eb652eeec810a6a29f4d285dea64ec51def652
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
defaults: &defaults
|
6
|
+
working_directory: ~/repo
|
7
|
+
docker:
|
8
|
+
- image: circleci/ruby:2.3.6-stretch-node
|
9
|
+
environment:
|
10
|
+
# - DBHOST: localhost
|
11
|
+
# - DBNAME: sendgrid_webapi_test
|
12
|
+
# - DBPASSWORD: Vdm9omJt8Z3MCV4N
|
13
|
+
# - DBUSER: test_user
|
14
|
+
- RACK_ENV: test
|
15
|
+
- RAILS_ENV: test
|
16
|
+
# - image: circleci/postgres:10.3-alpine-ram
|
17
|
+
# environment:
|
18
|
+
# - POSTGRES_DB: sendgrid_webapi_test
|
19
|
+
# - POSTGRES_USER: test_user
|
20
|
+
# - POSTGRES_PASSWORD: Vdm9omJt8Z3MCV4N
|
21
|
+
|
22
|
+
version: 2
|
23
|
+
jobs:
|
24
|
+
run_specs:
|
25
|
+
<<: *defaults
|
26
|
+
|
27
|
+
steps:
|
28
|
+
- run:
|
29
|
+
name: Set up environment
|
30
|
+
command: |
|
31
|
+
sudo apt-get update && sudo apt-get install -y apt-transport-https apt-utils
|
32
|
+
|
33
|
+
- checkout
|
34
|
+
|
35
|
+
- restore_cache:
|
36
|
+
keys:
|
37
|
+
- sendgrid_webapi-dependencies-v1-{{ checksum "sendgrid_webapi.gemspec" }}
|
38
|
+
- sendgrid_webapi-dependencies-v1-
|
39
|
+
|
40
|
+
- run:
|
41
|
+
name: Install dependencies
|
42
|
+
command: |
|
43
|
+
# curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
44
|
+
# echo "deb http://apt.postgresql.org/pub/repos/apt/ stretch-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
|
45
|
+
# sudo apt-get update && sudo apt-get install postgresql-client-10
|
46
|
+
bundle check --path=./vendor/bundle || bundle install --path=./vendor/bundle --jobs=4 --retry=3
|
47
|
+
|
48
|
+
- save_cache:
|
49
|
+
key: sendgrid_webapi-dependencies-v1-{{ checksum "sendgrid_webapi.gemspec" }}
|
50
|
+
paths:
|
51
|
+
- ./vendor/bundle
|
52
|
+
|
53
|
+
# - run:
|
54
|
+
# name: Set up database
|
55
|
+
# command: |
|
56
|
+
# cp spec/internal/config/database.docker.yml spec/internal/config/database.yml
|
57
|
+
|
58
|
+
- run:
|
59
|
+
name: Run tests
|
60
|
+
command: |
|
61
|
+
mkdir /tmp/test-results
|
62
|
+
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
63
|
+
bundle exec rspec --format progress --format RspecJunitFormatter --out /tmp/test-results/rspec.xml $TEST_FILES
|
64
|
+
|
65
|
+
- store_test_results:
|
66
|
+
path: /tmp/test-results
|
67
|
+
|
68
|
+
- store_artifacts:
|
69
|
+
path: /tmp/test-results
|
70
|
+
destination: test-results
|
71
|
+
|
72
|
+
build_gem:
|
73
|
+
<<: *defaults
|
74
|
+
|
75
|
+
steps:
|
76
|
+
- run:
|
77
|
+
name: Set up environment
|
78
|
+
command: |
|
79
|
+
sudo apt-get update && sudo apt-get install -y apt-transport-https apt-utils
|
80
|
+
|
81
|
+
- checkout
|
82
|
+
|
83
|
+
- restore_cache:
|
84
|
+
keys:
|
85
|
+
- sendgrid_webapi-dependencies-v1-{{ checksum "sendgrid_webapi.gemspec" }}
|
86
|
+
- sendgrid_webapi-dependencies-v1-
|
87
|
+
|
88
|
+
- run:
|
89
|
+
name: Install dependencies
|
90
|
+
command: |
|
91
|
+
gem install gemfury
|
92
|
+
bundle check --path=./vendor/bundle || bundle install --path=./vendor/bundle --jobs=4 --retry=3
|
93
|
+
|
94
|
+
- save_cache:
|
95
|
+
key: sendgrid_webapi-dependencies-v1-{{ checksum "sendgrid_webapi.gemspec" }}
|
96
|
+
paths:
|
97
|
+
- ./vendor/bundle
|
98
|
+
|
99
|
+
- run:
|
100
|
+
name: Build gem
|
101
|
+
command: |
|
102
|
+
gem build sendgrid_webapi.gemspec
|
103
|
+
|
104
|
+
- run:
|
105
|
+
name: Push gem
|
106
|
+
command: |
|
107
|
+
if [[ "${CIRCLE_PROJECT_USERNAME}" == "OneHQ" && "${CIRCLE_BRANCH}" == "master" && -n "${RUBYGEMS_API_KEY}" ]]; then
|
108
|
+
bash .circleci/setup-rubygems.sh
|
109
|
+
version=$(ruby -e 'load "lib/version.rb"; puts SendGridWebApi::VERSION')
|
110
|
+
grep -q "${version}" <(gem search sendgrid_api) || EXIT_CODE=$? && true
|
111
|
+
if [[ $EXIT_CODE == 1 ]]; then
|
112
|
+
gem push sendgrid_webapi-${version}.gem
|
113
|
+
git tag ${version}
|
114
|
+
git push --tags
|
115
|
+
|
116
|
+
[[ -n "$SLACK_TOKEN" ]] && curl -s -d "sendgrid_webapi ($version) released." "https://onehq.slack.com/services/hooks/slackbot?token=${SLACK_TOKEN}&channel=%23machines"
|
117
|
+
fi
|
118
|
+
fi
|
119
|
+
|
120
|
+
workflows:
|
121
|
+
version: 2
|
122
|
+
build-deploy:
|
123
|
+
jobs:
|
124
|
+
- run_specs
|
125
|
+
- build_gem:
|
126
|
+
requires:
|
127
|
+
- run_specs
|
128
|
+
filters:
|
129
|
+
branches:
|
130
|
+
only:
|
131
|
+
- master
|
132
|
+
- staging
|
data/.gitignore
CHANGED
@@ -1,5 +1,31 @@
|
|
1
1
|
*.gem
|
2
|
+
*.pgz
|
3
|
+
*.tmproj
|
2
4
|
.bundle
|
5
|
+
.DS_Store
|
6
|
+
.gitconfig
|
7
|
+
.idea
|
3
8
|
.rvmrc
|
9
|
+
.sass-cache
|
10
|
+
/.ey_local_data
|
11
|
+
/.ruby-gemset
|
12
|
+
/.vagrant
|
13
|
+
bin/*
|
14
|
+
config/*.sphinx.conf
|
15
|
+
config/database.yml
|
16
|
+
config/sphinx.yml
|
17
|
+
db/sphinx/
|
18
|
+
Gemfile.lock
|
19
|
+
log
|
20
|
+
log/*.log
|
21
|
+
project.rvmrc
|
22
|
+
public/assets
|
23
|
+
public/flash/*.swf
|
24
|
+
public/javascripts/packaged/*.js
|
25
|
+
public/packages/*
|
26
|
+
public/stylesheets/packaged/*.css
|
27
|
+
spec/internal/config/database.yml
|
28
|
+
sphinx/**/*
|
29
|
+
tmp
|
30
|
+
tmp/**/*
|
4
31
|
Gemfile.lock
|
5
|
-
pkg/*
|
data/.rspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
--
|
2
|
-
--
|
1
|
+
--color
|
2
|
+
--require spec_helper
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
3.0.0
|
data/.tool-versions
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
ruby 2.3.6
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2021 Kyle Ginavan
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
= SendGrid WEB API gem for Rails 3
|
1
|
+
= SendGrid WEB API gem for Rails 3
|
2
|
+
{<img src="https://secure.travis-ci.org/kylejginavan/sendgrid_webapi.png"/>}[http://travis-ci.org/kylejginavan/sendgrid_webapi] {<img src="https://badge.fury.io/rb/sendgrid_webapi.png" alt="Gem Version" />}[http://badge.fury.io/rb/sendgrid_webapi] {<img src="https://codeclimate.com/github/kylejginavan/sendgrid_webapi.png" />}[https://codeclimate.com/github/kylejginavan/sendgrid_webapi]
|
2
3
|
|
3
4
|
SendGrid WEB API gem allow you to retrieve information such as statistics, bounces, spam reports, unsubscribes, send email and other information.
|
4
5
|
|
@@ -6,13 +7,19 @@ SendGrid WEB API gem allow you to retrieve information such as statistics, bounc
|
|
6
7
|
|
7
8
|
In your Gemfile:
|
8
9
|
|
9
|
-
|
10
|
+
for sendgrid v3 support
|
11
|
+
|
12
|
+
gem 'sendgrid_webapi', '0.0.3'
|
13
|
+
|
14
|
+
for sendgrid v2 support
|
15
|
+
|
16
|
+
gem 'sendgrid_webapi', '0.0.2'
|
10
17
|
|
11
18
|
== Usage examples
|
12
19
|
|
13
20
|
=== Creating client object:
|
14
21
|
|
15
|
-
client = SendGridWebApi::Client.new("
|
22
|
+
client = SendGridWebApi::Client.new("apikey")
|
16
23
|
|
17
24
|
== Modules
|
18
25
|
|
@@ -23,7 +30,9 @@ This module allows you to retrieve and delete email addresses that have bounced
|
|
23
30
|
|
24
31
|
client.bounces.delete(:email => "email@example.com", :foor => "bar")
|
25
32
|
|
26
|
-
|
33
|
+
client.blocks.count
|
34
|
+
|
35
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/bounces.html
|
27
36
|
|
28
37
|
=== Blocks
|
29
38
|
This module allows you to retrieve and delete email addresses that were blocked by their ISP. These emails are not suppressed and are just for information.
|
@@ -32,7 +41,9 @@ This module allows you to retrieve and delete email addresses that were blocked
|
|
32
41
|
|
33
42
|
client.blocks.delete(:email => "email@example.com", :foor => "bar")
|
34
43
|
|
35
|
-
|
44
|
+
client.blocks.count
|
45
|
+
|
46
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/blocks.html
|
36
47
|
|
37
48
|
=== Invalid Email
|
38
49
|
This module allows you to retrieve and delete email addresses that you've sent to that are invalid email addresses.
|
@@ -41,7 +52,7 @@ This module allows you to retrieve and delete email addresses that you've sent t
|
|
41
52
|
|
42
53
|
client.invalid_emails.delete(:email => "email@example.com", :foor => "bar")
|
43
54
|
|
44
|
-
* options are available here: http://
|
55
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/invalid_emails.html
|
45
56
|
|
46
57
|
=== Spam Report
|
47
58
|
This module allows you to retrieve and delete email addresses that have marked your emails as SPAM.
|
@@ -50,7 +61,7 @@ This module allows you to retrieve and delete email addresses that have marked y
|
|
50
61
|
|
51
62
|
client.spam.delete(:email => "email@example.com", :foor => "bar")
|
52
63
|
|
53
|
-
* options are available here: http://
|
64
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/spam_reports.html
|
54
65
|
|
55
66
|
=== Unsubscribes
|
56
67
|
This module allows you to add, retrieve and delete email addresses that were unsubscribed from your emails.
|
@@ -61,18 +72,18 @@ This module allows you to add, retrieve and delete email addresses that were uns
|
|
61
72
|
|
62
73
|
client.unsubscribes.delete(:email => "email@example.com", :foor => "bar")
|
63
74
|
|
64
|
-
* options are available here: http://
|
75
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/unsubscribes.html
|
65
76
|
|
66
77
|
=== Parse Email
|
67
78
|
This module allows you to add, edit, or delete your email parse settings.
|
68
79
|
|
69
|
-
client.
|
80
|
+
client.parse_email.add(:hostname => "www.example.com", :url => "www.domain.com/parse.php", :spam_check => 1)
|
70
81
|
|
71
|
-
client.
|
82
|
+
client.parse_email.get(options)
|
72
83
|
|
73
|
-
client.
|
84
|
+
client.parse_email.delete(:hostname => "www.example.com")
|
74
85
|
|
75
|
-
* options are available here: http://
|
86
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/parse_settings.html
|
76
87
|
|
77
88
|
=== Event Notification URL
|
78
89
|
This module allows you to add, edit, or delete an event notification URL for your account.
|
@@ -83,7 +94,7 @@ This module allows you to add, edit, or delete an event notification URL for you
|
|
83
94
|
|
84
95
|
client.event_notification.delete(options)
|
85
96
|
|
86
|
-
* options are available here: http://
|
97
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Webhooks/event.html
|
87
98
|
|
88
99
|
|
89
100
|
=== Stats
|
@@ -91,36 +102,36 @@ This module allows you to retrieve statistical data on a range of metrics includ
|
|
91
102
|
|
92
103
|
client.stats.get(options)
|
93
104
|
|
94
|
-
* options are available here: http://
|
105
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/Statistics/index.html
|
95
106
|
|
96
107
|
=== Profile
|
97
108
|
This module allows you to retrieve and update your profile information such as credentials and email address.
|
98
109
|
|
99
110
|
client.profile.get(options)
|
100
|
-
|
111
|
+
|
101
112
|
client.profile.set(options)
|
102
|
-
|
113
|
+
|
103
114
|
client.profile.set_password(:password => "foo", :confirm_password => "foo")
|
104
115
|
|
105
116
|
client.profile.set_username(:username => "yournewusername@domain.com")
|
106
|
-
|
117
|
+
|
107
118
|
client.profile.set_email(:email => "yournewusername@domain.com")
|
108
119
|
|
109
|
-
* options are available here: http://
|
120
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Web_API/profile.html
|
110
121
|
|
111
122
|
|
112
123
|
=== Mail
|
113
124
|
This module allows you to send email.
|
114
|
-
|
125
|
+
|
115
126
|
client.mail.send(:to => "test@test.com", :subject => "test", :text => "some body", :from => "test@example.com")
|
116
|
-
|
117
|
-
* options are available here: http://
|
127
|
+
|
128
|
+
* options are available here: http://sendgrid.com/docs/Code_Examples/ruby.html
|
118
129
|
|
119
130
|
== SubUser
|
120
131
|
|
121
132
|
=== Creating client object:
|
122
133
|
|
123
|
-
client = SendGridWebApi::Client.new("
|
134
|
+
client = SendGridWebApi::Client.new("apikey")
|
124
135
|
|
125
136
|
client.sub_user
|
126
137
|
|
@@ -128,7 +139,7 @@ This module allows you to send email.
|
|
128
139
|
== Modules
|
129
140
|
|
130
141
|
=== Management SubUsers
|
131
|
-
Retrieve/Create/Enable/Disable your subusers. Change a subuser email address and username.
|
142
|
+
Retrieve/Create/Enable/Disable your subusers. Change a subuser email address and username. Docs can be found here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/index.html
|
132
143
|
|
133
144
|
Create a sub_user
|
134
145
|
|
@@ -157,14 +168,14 @@ Disable a subuser to login to the SendGrid.com website
|
|
157
168
|
Allows you to update your subusers profile information
|
158
169
|
|
159
170
|
client.sub_user.management.update(:user => "sub_user", :first_name => "change_named")
|
160
|
-
|
171
|
+
|
161
172
|
client.sub_user.management.update_password(:user => "sub_user", :password => "somepassword", :confirm_password => "somepassword")
|
162
173
|
|
163
174
|
client.sub_user.management.update_username(:user => "sub_user", :username => "newusername")
|
164
|
-
|
175
|
+
|
165
176
|
client.sub_user.management.update_email(:user => "sub_user", :email => "newemail")
|
166
|
-
|
167
|
-
* options are available here: http://
|
177
|
+
|
178
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/subusers.html
|
168
179
|
|
169
180
|
=== Bounces
|
170
181
|
This module allows you to manage bounce records of your subusers.
|
@@ -173,7 +184,7 @@ This module allows you to manage bounce records of your subusers.
|
|
173
184
|
|
174
185
|
client.sub_user.bounces.delete(:user => "sub_user", :email => "email@example.com")
|
175
186
|
|
176
|
-
* options are available here: http://
|
187
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/subuser_bounces.html
|
177
188
|
|
178
189
|
=== Invalid Email
|
179
190
|
This module allows you to manage invalid emails of your subusers.
|
@@ -182,7 +193,7 @@ This module allows you to manage invalid emails of your subusers.
|
|
182
193
|
|
183
194
|
client.sub_user.invalid_emails.delete(:user => "sub_user", :email => "email@example.com")
|
184
195
|
|
185
|
-
* options are available here: http://
|
196
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/invalid_emails.html
|
186
197
|
|
187
198
|
=== Spam Report
|
188
199
|
This module allows you to manage spam reports of your subusers.
|
@@ -191,7 +202,7 @@ This module allows you to manage spam reports of your subusers.
|
|
191
202
|
|
192
203
|
client.sub_user.spam.delete(:user => "sub_user", :email => "email@example.com")
|
193
204
|
|
194
|
-
* options are available here: http://
|
205
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/subuser_spam_reports.html
|
195
206
|
|
196
207
|
=== Unsubscribes
|
197
208
|
This module allows you to manage unsubscribes of your subusers.
|
@@ -202,18 +213,18 @@ This module allows you to manage unsubscribes of your subusers.
|
|
202
213
|
|
203
214
|
client.sub_user.unsubscribes.delete(:user => "sub_user", :email => "email@example.com")
|
204
215
|
|
205
|
-
* options are available here: http://
|
216
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/subuser_unsubscribes.html
|
206
217
|
|
207
218
|
=== Parse Email
|
208
219
|
This module allows you to setup subusers parse settings
|
209
220
|
|
210
|
-
client.sub_user.
|
221
|
+
client.sub_user.parse_email.add(:user => "sub_user", :hostname => "www.example.com", :url => "www.domain.com/parse.php", :spam_check => 1)
|
211
222
|
|
212
|
-
client.sub_user.
|
223
|
+
client.sub_user.parse_email.get(:user => "sub_user")
|
213
224
|
|
214
|
-
client.sub_user.
|
225
|
+
client.sub_user.parse_email.delete(:user => "sub_user", :hostname => "www.example.com")
|
215
226
|
|
216
|
-
* options are available here: http://
|
227
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/parse_settings.html
|
217
228
|
|
218
229
|
=== Event Notification URL
|
219
230
|
This module allows you to manage subusers event notification url.
|
@@ -224,7 +235,7 @@ This module allows you to manage subusers event notification url.
|
|
224
235
|
|
225
236
|
client.sub_user.event_notification.delete(:user => "sub_user", :url => "http://www.yourposturlhere.com")
|
226
237
|
|
227
|
-
* options are available here: http://
|
238
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/event_notification_url.html
|
228
239
|
|
229
240
|
|
230
241
|
=== Stats
|
@@ -232,38 +243,38 @@ This module allows you to see statistics regarding your subusers.
|
|
232
243
|
|
233
244
|
client.sub_user.stats.get(:user => "sub_user")
|
234
245
|
|
235
|
-
* options are available here: http://
|
246
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/statistics.html
|
236
247
|
|
237
248
|
=== Limits
|
238
249
|
This module allows you to manage the rate of emails your subusers are able to send
|
239
250
|
|
240
251
|
client.sub_user.limits.get(:user => "sub_user")
|
241
|
-
|
252
|
+
|
242
253
|
client.sub_user.limits.set_credits(:user => "sub_user", :credits=> "200", :period=> "daily")
|
243
|
-
|
254
|
+
|
244
255
|
client.sub_user.limits.reset(:user => "sub_user", :credits=> "400", :period=> "daily")
|
245
|
-
|
256
|
+
|
246
257
|
client.sub_user.limits.increment_credits(:user => "sub_user", :credits=> "400")
|
247
|
-
|
258
|
+
|
248
259
|
client.sub_user.limits.decrement_credits(:user => "sub_user", :credits=> "400")
|
249
260
|
|
250
261
|
To remove all limits from your sub_user
|
251
262
|
|
252
263
|
client.sub_user.limits.delete(:user => "sub_user")
|
253
264
|
|
254
|
-
* options are available here: http://
|
265
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/account_limits.html
|
255
266
|
|
256
267
|
|
257
268
|
=== Monitor Records
|
258
269
|
Make sure your subusers arent sending out spam by getting a sample of their outgoing messages
|
259
270
|
|
260
271
|
client.sub_user.monitor_records.create(:name => "testmonitor", :frequency => 10000, :email => "test@test.com")
|
261
|
-
|
272
|
+
|
262
273
|
client.sub_user.monitor_records.edit(:name => "testmonitor", :new_frequency => 10)
|
263
|
-
|
274
|
+
|
264
275
|
client.sub_user.monitor_records.add_user(:user => "sub_user", :name => "testmonitor")
|
265
|
-
|
266
|
-
* options are available here: http://
|
276
|
+
|
277
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/monitor_records.html
|
267
278
|
|
268
279
|
=== IP Management
|
269
280
|
List all IP addresses you have under your account and retrieve details about them
|
@@ -273,14 +284,14 @@ To obtain a complete list of all IP's and which are free, taken or available. Se
|
|
273
284
|
client.sub_user.ip_management.get(:user => "sub_user")
|
274
285
|
|
275
286
|
To get the ip that is using your sub_user
|
276
|
-
|
287
|
+
|
277
288
|
client.sub_user.ip_management.usage_ip(:user => "sub_user")
|
278
|
-
|
279
|
-
To assign one ip to your sub_user
|
280
|
-
|
289
|
+
|
290
|
+
To assign one ip to your sub_user
|
291
|
+
|
281
292
|
client.sub_user.ip_management.assign_ip(:user => "sub_user", :ip => ["IP1", "IP2"])
|
282
293
|
|
283
|
-
* options are available here: http://
|
294
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/ip_management.html
|
284
295
|
|
285
296
|
=== WhiteLabel
|
286
297
|
Manage whitelabel settings for your subusers
|
@@ -294,52 +305,65 @@ To set a subusers whitelabel domain
|
|
294
305
|
client.sub_user.whitelabel.add(:user => "sub_user", :mail_domain => "email.sendgrid.com")
|
295
306
|
|
296
307
|
|
297
|
-
* options are available here: http://
|
298
|
-
|
308
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/whitelabel.html
|
309
|
+
|
299
310
|
|
300
311
|
=== IFrame
|
301
312
|
Allow users to manage your subusers via iframe using our site
|
302
313
|
|
303
314
|
client.sub_user.iframe.get(:user => "sub_user")
|
304
315
|
|
305
|
-
* options are available here: http://
|
306
|
-
|
307
|
-
|
308
|
-
=== Parse Email
|
309
|
-
This module allows you to setup subusers parse settings.
|
310
|
-
|
311
|
-
client.sub_user.parse_emails.add(:user => "sub_user", :hostname => "www.example.com", :url => "www.domain.com/parse.php", :spam_check => 1)
|
312
|
-
|
313
|
-
client.sub_user.parse_emails.get(:user => "sub_user")
|
314
|
-
|
315
|
-
client.sub_user.parse_emails.delete(:user => "sub_user", :hostname => "www.example.com")
|
316
|
-
|
317
|
-
* options are available here: http://docs.sendgrid.com/documentation/api/customer-subuser-api/customer-api/parse-settings/
|
316
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/automatic_login.html
|
318
317
|
|
319
318
|
|
320
319
|
=== Authentication
|
321
320
|
This module allows you to check subusers password to see if its valid.
|
322
321
|
|
323
322
|
client.sub_user.auth.login(:user => "sub_user", :password => "somepass").
|
324
|
-
|
325
|
-
* options are available here: http://
|
323
|
+
|
324
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/authenticate_a_subuser.html
|
326
325
|
|
327
326
|
|
328
327
|
=== Apps
|
329
328
|
This module allows you to setup subusers app settings.
|
330
329
|
|
331
330
|
client.sub_user.apps.list(:user => "sub_user")
|
332
|
-
|
331
|
+
|
333
332
|
client.sub_user.apps.activate(:user => "sub_user", :name => "opentrack")
|
334
333
|
|
335
334
|
client.sub_user.apps.deactivate(:user => "sub_user", :name => "opentrack")
|
336
|
-
|
335
|
+
|
337
336
|
client.sub_user.apps.current_settings(:user => "sub_user", :name => "eventnotify")
|
338
|
-
|
339
|
-
client.sub_user.apps.customize(:user => "sub_user", :name => "eventnotify", :processed => "0", :dropped => "1", :deferred => "1", :delivered => "0", :bounce => "1", :click => "1", :open => "1", :unsubscribe => "1", :spamreport => "1", :url => "http://someurl.com/listener"))
|
340
|
-
|
341
|
-
* options are available here: http://docs.sendgrid.com/documentation/api/customer-subuser-api/customer-api/filter-apps/
|
342
337
|
|
338
|
+
client.sub_user.apps.customize(:user => "sub_user", :name => "eventnotify", :processed => "0", :dropped => "1", :deferred => "1", :delivered => "0", :bounce => "1", :click => "1", :open => "1", :unsubscribe => "1", :spamreport => "1", :url => "http://someurl.com/listener"))
|
339
|
+
|
340
|
+
* options are available here: http://sendgrid.com/docs/API_Reference/Customer_Subuser_API/apps.html
|
341
|
+
|
342
|
+
|
343
|
+
=== Apikey
|
344
|
+
This module allows you to manage apikeys
|
345
|
+
|
346
|
+
client.apikey.management.get
|
347
|
+
|
348
|
+
client.apikey.management.get({ on_behalf_of: "SUB_USERNAME" })
|
349
|
+
|
350
|
+
client.apikey.management.get({ apikey_id: "APIKEY_ID" })
|
351
|
+
|
352
|
+
client.apikey.management.get({ on_behalf_of: "SUB_USERNAME" })
|
353
|
+
|
354
|
+
client.apikey.management.create({ "name" => "APIKEY NAME", "scopes" => ["mail.send"] })
|
355
|
+
|
356
|
+
client.apikey.management.create({ on_behalf_of: "SUB_USERNAME", "name" => "APIKEY NAME", "scopes" => ["mail.send"] })
|
357
|
+
|
358
|
+
client.apikey.management.update("APIKEY_ID", { "name" => "NEW APIKEY NAME"})
|
359
|
+
|
360
|
+
client.apikey.management.update("APIKEY_ID", { on_behalf_of: "SUB_USERNAME", "name" => "NEW APIKEY NAME"})
|
361
|
+
|
362
|
+
client.apikey.management.delete("APIKEY_ID")
|
363
|
+
|
364
|
+
client.apikey.management.delete("APIKEY_ID", { on_behalf_of: "SUB_USERNAME" })
|
365
|
+
|
366
|
+
* options are available here: https://sendgrid.com/docs/api-reference/
|
343
367
|
|
344
368
|
== Helper
|
345
369
|
|
@@ -351,18 +375,18 @@ define the data
|
|
351
375
|
user_hash = {:website => "someurl.com", :password => "somepass", :confirm_password => "somepass",
|
352
376
|
:first_name => "home", :last_name => "simpson", :address => "555 anystreet", :city => "any city",
|
353
377
|
:state => "CA" , :zip => "91234", :email => "email@email.com", :country => "US", :phone => "555-555"}
|
354
|
-
|
378
|
+
|
355
379
|
apps = { :opentrack => {:name => "eventnotify", :processed => "0", :dropped => "1", :deferred => "1",
|
356
|
-
:delivered => "0", :bounce => "1", :click => "1", :open => "1", :unsubscribe => "1", :spamreport => "1",
|
380
|
+
:delivered => "0", :bounce => "1", :click => "1", :open => "1", :unsubscribe => "1", :spamreport => "1",
|
357
381
|
:url => "https://agencieshq.com/sendgrid/v1/listener"},
|
358
382
|
:clicktrack => {:enable_text => "1"},
|
359
383
|
:opentrack => {}
|
360
384
|
}
|
361
385
|
|
362
386
|
users = {"username" => {:account => user_hash, :applications => apps, :assigned_ips => ["IP"]}}
|
363
|
-
|
387
|
+
|
364
388
|
call the helper
|
365
|
-
|
389
|
+
|
366
390
|
create_sub_user_account("sendgrid user", "sendgrid pass", users)
|
367
391
|
|
368
392
|
=== Run SendGrid Query
|
@@ -386,4 +410,4 @@ The API call was unsuccessful. The gem will return ApiException raise.
|
|
386
410
|
== CONTRIBUTORS:
|
387
411
|
|
388
412
|
* Kyle J. Ginavan.
|
389
|
-
* Mauro Torres - http://github.com/chebyte
|
413
|
+
* Mauro Torres - http://github.com/chebyte
|