sendgrid_webapi 0.0.2 → 0.1.2
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 +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
|