summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElmer Thomas <elmer@thinkingserious.com>2016-07-05 14:51:47 -0700
committerElmer Thomas <elmer@thinkingserious.com>2016-07-05 14:51:47 -0700
commita0aee2f880a8e736b638d5188ef56f07d6ce3f82 (patch)
tree11ac0be09ab27d5a82ea7d5bf9cfca62f60c6896
parenta369c84cf9f747252dc90a0fd108909b60b3f30d (diff)
downloadsendgrid-nodejs-3.0.7.zip
sendgrid-nodejs-3.0.7.tar.gz
sendgrid-nodejs-3.0.7.tar.bz2
Version Bump v3.0.7: swagger/oai updates + accept header fixv3.0.7
-rw-r--r--.gitignore1
-rw-r--r--CHANGELOG.md4
-rw-r--r--README.md5
-rw-r--r--USAGE.md287
-rw-r--r--examples/alerts/alerts.js80
-rw-r--r--examples/apikeys/apikeys.js3
-rw-r--r--examples/asm/asm.js21
-rw-r--r--examples/campaigns/campaigns.js4
-rw-r--r--examples/contactdb/contactdb.js15
-rw-r--r--examples/mail/mail.js134
-rw-r--r--examples/subusers/subusers.js6
-rw-r--r--examples/suppression/suppression.js4
-rw-r--r--examples/user/user.js69
-rw-r--r--package.json2
-rw-r--r--test/test.js391
15 files changed, 899 insertions, 127 deletions
diff --git a/.gitignore b/.gitignore
index a5da109..ea6bf41 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ test/config.js
.env.production
.env.staging
.env
+temp.js
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 17c9428..8c72053 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
# Change Log
All notable changes to this project will be documented in this file.
+## [3.0.7] - 2016-07-05
+### Updated
+- Content based on our updated [Swagger/OAI doc](https://github.com/sendgrid/sendgrid-oai)
+
## [3.0.6] - 2016-07-01
### Fixed
- GET suppression/bounces needs header to be Accept: application/json
diff --git a/README.md b/README.md
index d1bc9b8..3f827c2 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@
**BREAKING CHANGE as of 2016.06.14**
-Version 3.0.0 brings you full support for all Web API v3 endpoints. We
+Version 3.X.X brings you full support for all Web API v3 endpoints. We
have the following resources to get you started quickly:
- [SendGrid
@@ -15,6 +15,7 @@ have the following resources to get you started quickly:
- [Usage Docs](https://github.com/sendgrid/sendgrid-nodejs/blob/master/USAGE.md)
- [Example
Code](https://github.com/sendgrid/sendgrid-nodejs/tree/master/examples)
+- [Migration from v2 to v3](https://sendgrid.com/docs/Classroom/Send/v3_Mail_Send/how_to_migrate_from_v2_to_v3_mail_send.html)
Thank you for your continued support!
@@ -45,7 +46,7 @@ Add the following to your `package.json` file:
...
"dependencies": {
...
- "sendgrid": "^3.0.6"
+ "sendgrid": "^3.0.7"
}
}
```
diff --git a/USAGE.md b/USAGE.md
index 09b5405..a8d536e 100644
--- a/USAGE.md
+++ b/USAGE.md
@@ -9,6 +9,7 @@ var sg = require('sendgrid').SendGrid(process.env.SENDGRID_API_KEY)
# Table of Contents
* [ACCESS SETTINGS](#access_settings)
+* [ALERTS](#alerts)
* [API KEYS](#api_keys)
* [ASM](#asm)
* [BROWSERS](#browsers)
@@ -191,6 +192,132 @@ For more information, please see our [User Guide](http://sendgrid.com/docs/User_
console.log(response.headers)
})
```
+<a name="alerts"></a>
+# ALERTS
+
+## Create a new Alert
+
+**This endpoint allows you to create a new alert.**
+
+Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
+* Usage alerts allow you to set the threshold at which an alert will be sent.
+* Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, "daily", "weekly", or "monthly".
+
+For more information about alerts, please see our [User Guide](https://sendgrid.com/docs/User_Guide/Settings/alerts.html).
+
+### POST /alerts
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.body = {
+ "email_to": "example@example.com",
+ "frequency": "daily",
+ "type": "stats_notification"
+};
+ request.method = 'POST'
+ request.path = '/v3/alerts'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Retrieve all alerts
+
+**This endpoint allows you to retieve all of your alerts.**
+
+Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
+* Usage alerts allow you to set the threshold at which an alert will be sent.
+* Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, "daily", "weekly", or "monthly".
+
+For more information about alerts, please see our [User Guide](https://sendgrid.com/docs/User_Guide/Settings/alerts.html).
+
+### GET /alerts
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.method = 'GET'
+ request.path = '/v3/alerts'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Update an alert
+
+**This endpoint allows you to update an alert.**
+
+Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
+* Usage alerts allow you to set the threshold at which an alert will be sent.
+* Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, "daily", "weekly", or "monthly".
+
+For more information about alerts, please see our [User Guide](https://sendgrid.com/docs/User_Guide/Settings/alerts.html).
+
+### PATCH /alerts/{alert_id}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.body = {
+ "email_to": "example@example.com"
+};
+ request.method = 'PATCH'
+ request.path = '/v3/alerts/{alert_id}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Retrieve a specific alert
+
+**This endpoint allows you to retrieve a specific alert.**
+
+Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
+* Usage alerts allow you to set the threshold at which an alert will be sent.
+* Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, "daily", "weekly", or "monthly".
+
+For more information about alerts, please see our [User Guide](https://sendgrid.com/docs/User_Guide/Settings/alerts.html).
+
+### GET /alerts/{alert_id}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.method = 'GET'
+ request.path = '/v3/alerts/{alert_id}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Delete an alert
+
+**This endpoint allows you to delete an alert.**
+
+Alerts allow you to specify an email address to receive notifications regarding your email usage or statistics.
+* Usage alerts allow you to set the threshold at which an alert will be sent.
+* Stats notifications allow you to set how frequently you would like to receive email statistics reports. For example, "daily", "weekly", or "monthly".
+
+For more information about alerts, please see our [User Guide](https://sendgrid.com/docs/User_Guide/Settings/alerts.html).
+
+### DELETE /alerts/{alert_id}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.method = 'DELETE'
+ request.path = '/v3/alerts/{alert_id}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
<a name="api_keys"></a>
# API KEYS
@@ -213,6 +340,7 @@ See the [API Key Permissions List](https://sendgrid.com/docs/API_Reference/Web_A
var request = sg.emptyRequest()
request.body = {
"name": "My API Key",
+ "sample": "data",
"scopes": [
"mail.send",
"alerts.create",
@@ -238,6 +366,7 @@ The API Keys feature allows customers to be able to generate an API Key credenti
```javascript
var request = sg.emptyRequest()
+ request.queryParams["limit"] = '1'
request.method = 'GET'
request.path = '/v3/api_keys'
sg.API(request, function (response) {
@@ -389,6 +518,10 @@ Each user can create up to 25 different suppression groups.
This endpoint will return information for each group ID that you include in your request. To add a group ID to your request, simply append `&id=` followed by the group ID.
+Suppressions are a list of email addresses that will not receive content sent under a given [group](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html).
+
+Suppression groups, or [unsubscribe groups](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html), allow you to label a category of content that you regularly send. This gives your recipients the ability to opt out of a specific set of your email. For example, you might define a group for your transactional email, and one for your marketing email so that your users can continue recieving your transactional email witout having to receive your marketing content.
+
### GET /asm/groups
@@ -525,6 +658,34 @@ Suppressions are recipient email addresses that are added to [unsubscribe groups
console.log(response.headers)
})
```
+## Search for suppressions within a group
+
+**This endpoint allows you to search a suppression group for multiple suppressions.**
+
+When given a list of email addresses and a group ID, this endpoint will return only the email addresses that have been unsubscribed from the given group.
+
+Suppressions are a list of email addresses that will not receive content sent under a given [group](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html).
+
+### POST /asm/groups/{group_id}/suppressions/search
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.body = {
+ "recipient_emails": [
+ "exists1@example.com",
+ "exists2@example.com",
+ "doesnotexists@example.com"
+ ]
+};
+ request.method = 'POST'
+ request.path = '/v3/asm/groups/{group_id}/suppressions/search'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
## Delete a suppression from a suppression group
**This endpoint allows you to remove a suppressed email address from the given suppression group.**
@@ -548,7 +709,7 @@ Suppressions are recipient email addresses that are added to [unsubscribe groups
**This endpoint allows you to retrieve a list of all suppressions.**
-Suppressions are email addresses that can be added to [groups](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html) to prevent certain types of emails from being delivered to those addresses.
+Suppressions are a list of email addresses that will not receive content sent under a given [group](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html).
### GET /asm/suppressions
@@ -630,9 +791,9 @@ A global suppression (or global unsubscribe) is an email address of a recipient
```
## Retrieve all suppression groups for an email address
-**This endpoint will return a list of all suppression groups, indicating if the given email address is suppressed for each group.**
+**This endpoint returns the list of all groups that the given email address has been unsubscribed from.**
-Suppressions are email addresses that can be added to [groups](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html) to prevent certain types of emails from being delivered to those addresses.
+Suppressions are a list of email addresses that will not receive content sent under a given [group](https://sendgrid.com/docs/API_Reference/Web_API_v3/Suppression_Management/groups.html).
### GET /asm/suppressions/{email}
@@ -742,8 +903,8 @@ For more information:
```javascript
var request = sg.emptyRequest()
- request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+ request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
request.method = 'GET'
request.path = '/v3/campaigns'
sg.API(request, function (response) {
@@ -1271,7 +1432,7 @@ The Contacts API helps you manage your [Marketing Campaigns](https://sendgrid.co
request.body = {
"name": "newlistname"
};
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
request.method = 'PATCH'
request.path = '/v3/contactdb/lists/{list_id}'
sg.API(request, function (response) {
@@ -1291,7 +1452,7 @@ The Contacts API helps you manage your [Marketing Campaigns](https://sendgrid.co
```javascript
var request = sg.emptyRequest()
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}'
sg.API(request, function (response) {
@@ -1358,7 +1519,7 @@ The Contacts API helps you manage your [Marketing Campaigns](https://sendgrid.co
var request = sg.emptyRequest()
request.queryParams["page"] = '1'
request.queryParams["page_size"] = '1'
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}/recipients'
sg.API(request, function (response) {
@@ -1397,8 +1558,8 @@ The Contacts API helps you manage your [Marketing Campaigns](https://sendgrid.co
```javascript
var request = sg.emptyRequest()
- request.queryParams["recipient_id"] = '0'
- request.queryParams["list_id"] = '0'
+ request.queryParams["recipient_id"] = '1'
+ request.queryParams["list_id"] = '1'
request.method = 'DELETE'
request.path = '/v3/contactdb/lists/{list_id}/recipients/{recipient_id}'
sg.API(request, function (response) {
@@ -1581,6 +1742,7 @@ The contactdb is a database of your contacts for [SendGrid Marketing Campaigns](
```javascript
var request = sg.emptyRequest()
+ request.queryParams["%7Bfield_name%7D"] = 'test_string'
request.queryParams["{field_name}"] = 'test_string'
request.method = 'GET'
request.path = '/v3/contactdb/recipients/search'
@@ -1799,7 +1961,7 @@ For more information about segments in Marketing Campaigns, please see our [User
```javascript
var request = sg.emptyRequest()
- request.queryParams["segment_id"] = '0'
+ request.queryParams["segment_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/segments/{segment_id}'
sg.API(request, function (response) {
@@ -3105,8 +3267,8 @@ For more information about Subusers:
```javascript
var request = sg.emptyRequest()
request.queryParams["username"] = 'test_string'
- request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+ request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
request.method = 'GET'
request.path = '/v3/subusers'
sg.API(request, function (response) {
@@ -3389,7 +3551,7 @@ For more information, see our [User Guide](https://sendgrid.com/docs/User_Guide/
var request = sg.emptyRequest()
request.queryParams["date"] = 'test_string'
request.queryParams["sort_by_direction"] = 'asc'
- request.queryParams["limit"] = '0'
+ request.queryParams["limit"] = '1'
request.queryParams["sort_by_metric"] = 'test_string'
request.queryParams["offset"] = '1'
request.method = 'GET'
@@ -3519,8 +3681,8 @@ For more information see:
```javascript
var request = sg.emptyRequest()
- request.queryParams["start_time"] = '0'
- request.queryParams["end_time"] = '0'
+ request.queryParams["start_time"] = '1'
+ request.queryParams["end_time"] = '1'
request.method = 'GET'
request.path = '/v3/suppression/bounces'
sg.API(request, function (response) {
@@ -4799,11 +4961,36 @@ Common uses of this data are to remove unsubscribes, react to spam reports, dete
console.log(response.headers)
})
```
-## Retrieve Parse Webhook settings
+## Create a parse setting
+
+**This endpoint allows you to create a new inbound parse setting.**
-**This endpoint allows you to retrieve your current inbound parse webhook settings.**
+The inbound parse webhook allows you to have incoming emails parsed, extracting some or all of the content, and then have that content POSTed by SendGrid to a URL of your choosing. For more information, please see our [User Guide](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
-SendGrid can parse the attachments and contents of incoming emails. The Parse API will POST the parsed email to a URL that you specify. For more information, see our Inbound [Parse Webhook documentation](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
+### POST /user/webhooks/parse/settings
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.body = {
+ "hostname": "myhostname.com",
+ "send_raw": false,
+ "spam_check": true,
+ "url": "http://email.myhosthame.com"
+};
+ request.method = 'POST'
+ request.path = '/v3/user/webhooks/parse/settings'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Retrieve all parse settings
+
+**This endpoint allows you to retrieve all of your current inbound parse settings.**
+
+The inbound parse webhook allows you to have incoming emails parsed, extracting some or all of the contnet, and then have that content POSTed by SendGrid to a URL of your choosing. For more information, please see our [User Guide](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
### GET /user/webhooks/parse/settings
@@ -4818,6 +5005,68 @@ SendGrid can parse the attachments and contents of incoming emails. The Parse AP
console.log(response.headers)
})
```
+## Update a parse setting
+
+**This endpoint allows you to update a specific inbound parse setting.**
+
+The inbound parse webhook allows you to have incoming emails parsed, extracting some or all of the contnet, and then have that content POSTed by SendGrid to a URL of your choosing. For more information, please see our [User Guide](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
+
+### PATCH /user/webhooks/parse/settings/{hostname}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.body = {
+ "send_raw": true,
+ "spam_check": false,
+ "url": "http://newdomain.com/parse"
+};
+ request.method = 'PATCH'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Retrieve a specific parse setting
+
+**This endpoint allows you to retrieve a specific inbound parse setting.**
+
+The inbound parse webhook allows you to have incoming emails parsed, extracting some or all of the contnet, and then have that content POSTed by SendGrid to a URL of your choosing. For more information, please see our [User Guide](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
+
+### GET /user/webhooks/parse/settings/{hostname}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.method = 'GET'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
+## Delete a parse setting
+
+**This endpoint allows you to delete a specific inbound parse setting.**
+
+The inbound parse webhook allows you to have incoming emails parsed, extracting some or all of the contnet, and then have that content POSTed by SendGrid to a URL of your choosing. For more information, please see our [User Guide](https://sendgrid.com/docs/API_Reference/Webhooks/parse.html).
+
+### DELETE /user/webhooks/parse/settings/{hostname}
+
+
+```javascript
+ var request = sg.emptyRequest()
+ request.method = 'DELETE'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+ })
+ ```
## Retrieves Inbound Parse Webhook statistics.
**This endpoint allows you to retrieve the statistics for your Parse Webhook useage.**
diff --git a/examples/alerts/alerts.js b/examples/alerts/alerts.js
new file mode 100644
index 0000000..01a4fc9
--- /dev/null
+++ b/examples/alerts/alerts.js
@@ -0,0 +1,80 @@
+var sg = require('sendgrid').SendGrid(process.env.SENDGRID_API_KEY)
+
+///////////////////////////////////////////////////
+// Create a new Alert
+// POST /alerts
+
+
+var request = sg.emptyRequest()
+request.body = {
+ "email_to": "example@example.com",
+ "frequency": "daily",
+ "type": "stats_notification"
+};
+request.method = 'POST'
+request.path = '/v3/alerts'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Retrieve all alerts
+// GET /alerts
+
+
+var request = sg.emptyRequest()
+request.method = 'GET'
+request.path = '/v3/alerts'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Update an alert
+// PATCH /alerts/{alert_id}
+
+
+var request = sg.emptyRequest()
+request.body = {
+ "email_to": "example@example.com"
+};
+request.method = 'PATCH'
+request.path = '/v3/alerts/{alert_id}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Retrieve a specific alert
+// GET /alerts/{alert_id}
+
+
+var request = sg.emptyRequest()
+request.method = 'GET'
+request.path = '/v3/alerts/{alert_id}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Delete an alert
+// DELETE /alerts/{alert_id}
+
+
+var request = sg.emptyRequest()
+request.method = 'DELETE'
+request.path = '/v3/alerts/{alert_id}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
diff --git a/examples/apikeys/apikeys.js b/examples/apikeys/apikeys.js
index b4420ef..11d311f 100644
--- a/examples/apikeys/apikeys.js
+++ b/examples/apikeys/apikeys.js
@@ -8,6 +8,7 @@ var sg = require('sendgrid').SendGrid(process.env.SENDGRID_API_KEY)
var request = sg.emptyRequest()
request.body = {
"name": "My API Key",
+ "sample": "data",
"scopes": [
"mail.send",
"alerts.create",
@@ -28,6 +29,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
+request.queryParams["limit"] = '1'
+
request.method = 'GET'
request.path = '/v3/api_keys'
sg.API(request, function (response) {
diff --git a/examples/asm/asm.js b/examples/asm/asm.js
index 3fcf195..ecbcca6 100644
--- a/examples/asm/asm.js
+++ b/examples/asm/asm.js
@@ -117,6 +117,27 @@ sg.API(request, function (response) {
})
///////////////////////////////////////////////////
+// Search for suppressions within a group
+// POST /asm/groups/{group_id}/suppressions/search
+
+
+var request = sg.emptyRequest()
+request.body = {
+ "recipient_emails": [
+ "exists1@example.com",
+ "exists2@example.com",
+ "doesnotexists@example.com"
+ ]
+};
+request.method = 'POST'
+request.path = '/v3/asm/groups/{group_id}/suppressions/search'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
// Delete a suppression from a suppression group
// DELETE /asm/groups/{group_id}/suppressions/{email}
diff --git a/examples/campaigns/campaigns.js b/examples/campaigns/campaigns.js
index a2c1407..83f66a0 100644
--- a/examples/campaigns/campaigns.js
+++ b/examples/campaigns/campaigns.js
@@ -40,8 +40,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
request.method = 'GET'
request.path = '/v3/campaigns'
diff --git a/examples/contactdb/contactdb.js b/examples/contactdb/contactdb.js
index 2ffba33..71152c1 100644
--- a/examples/contactdb/contactdb.js
+++ b/examples/contactdb/contactdb.js
@@ -120,7 +120,7 @@ var request = sg.emptyRequest()
request.body = {
"name": "newlistname"
};
-request.queryParams["list_id"] = '0'
+request.queryParams["list_id"] = '1'
request.method = 'PATCH'
request.path = '/v3/contactdb/lists/{list_id}'
@@ -136,7 +136,7 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["list_id"] = '0'
+request.queryParams["list_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}'
@@ -188,7 +188,7 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
request.queryParams["page"] = '1'
request.queryParams["page_size"] = '1'
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}/recipients'
@@ -218,8 +218,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["recipient_id"] = '0'
- request.queryParams["list_id"] = '0'
+request.queryParams["recipient_id"] = '1'
+ request.queryParams["list_id"] = '1'
request.method = 'DELETE'
request.path = '/v3/contactdb/lists/{list_id}/recipients/{recipient_id}'
@@ -347,7 +347,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["{field_name}"] = 'test_string'
+request.queryParams["%7Bfield_name%7D"] = 'test_string'
+ request.queryParams["{field_name}"] = 'test_string'
request.method = 'GET'
request.path = '/v3/contactdb/recipients/search'
@@ -499,7 +500,7 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["segment_id"] = '0'
+request.queryParams["segment_id"] = '1'
request.method = 'GET'
request.path = '/v3/contactdb/segments/{segment_id}'
diff --git a/examples/mail/mail.js b/examples/mail/mail.js
index 8d98078..ed4b73f 100644
--- a/examples/mail/mail.js
+++ b/examples/mail/mail.js
@@ -37,138 +37,138 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
request.body = {
"asm": {
- "group_id": 1,
+ "group_id": 1,
"groups_to_display": [
- 1,
- 2,
+ 1,
+ 2,
3
]
- },
+ },
"attachments": [
{
- "content": "[BASE64 encoded content block here]",
- "content_id": "ii_139db99fdb5c3704",
- "disposition": "inline",
- "filename": "file1.jpg",
- "name": "file1",
+ "content": "[BASE64 encoded content block here]",
+ "content_id": "ii_139db99fdb5c3704",
+ "disposition": "inline",
+ "filename": "file1.jpg",
+ "name": "file1",
"type": "jpg"
}
- ],
- "batch_id": "[YOUR BATCH ID GOES HERE]",
+ ],
+ "batch_id": "[YOUR BATCH ID GOES HERE]",
"categories": [
- "category1",
+ "category1",
"category2"
- ],
+ ],
"content": [
{
- "type": "text/html",
+ "type": "text/html",
"value": "<html><p>Hello, world!</p><img src=[CID GOES HERE]></img></html>"
}
- ],
+ ],
"custom_args": {
- "New Argument 1": "New Value 1",
- "activationAttempt": "1",
+ "New Argument 1": "New Value 1",
+ "activationAttempt": "1",
"customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]"
- },
+ },
"from": {
- "email": "sam.smith@example.com",
+ "email": "sam.smith@example.com",
"name": "Sam Smith"
- },
- "headers": {},
- "ip_pool_name": "[YOUR POOL NAME GOES HERE]",
+ },
+ "headers": {},
+ "ip_pool_name": "[YOUR POOL NAME GOES HERE]",
"mail_settings": {
"bcc": {
- "email": "ben.doe@example.com",
+ "email": "ben.doe@example.com",
"enable": true
- },
+ },
"bypass_list_management": {
"enable": true
- },
+ },
"footer": {
- "enable": true,
- "html": "<p>Thanks</br>The SendGrid Team</p>",
+ "enable": true,
+ "html": "<p>Thanks</br>The SendGrid Team</p>",
"text": "Thanks,/n The SendGrid Team"
- },
+ },
"sandbox_mode": {
"enable": false
- },
+ },
"spam_check": {
- "enable": true,
- "post_to_url": "http://example.com/compliance",
+ "enable": true,
+ "post_to_url": "http://example.com/compliance",
"threshold": 3
}
- },
+ },
"personalizations": [
{
"bcc": [
{
- "email": "sam.doe@example.com",
+ "email": "sam.doe@example.com",
"name": "Sam Doe"
}
- ],
+ ],
"cc": [
{
- "email": "jane.doe@example.com",
+ "email": "jane.doe@example.com",
"name": "Jane Doe"
}
- ],
+ ],
"custom_args": {
- "New Argument 1": "New Value 1",
- "activationAttempt": "1",
+ "New Argument 1": "New Value 1",
+ "activationAttempt": "1",
"customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]"
- },
+ },
"headers": {
- "X-Accept-Language": "en",
+ "X-Accept-Language": "en",
"X-Mailer": "MyApp"
- },
- "send_at": 1409348513,
- "subject": "Hello, World!",
+ },
+ "send_at": 1409348513,
+ "subject": "Hello, World!",
"substitutions": {
- "id": "substitutions",
+ "id": "substitutions",
"type": "object"
- },
+ },
"to": [
{
- "email": "john.doe@example.com",
+ "email": "john.doe@example.com",
"name": "John Doe"
}
]
}
- ],
+ ],
"reply_to": {
- "email": "sam.smith@example.com",
+ "email": "sam.smith@example.com",
"name": "Sam Smith"
- },
+ },
"sections": {
"section": {
- ":sectionName1": "section 1 text",
+ ":sectionName1": "section 1 text",
":sectionName2": "section 2 text"
}
- },
- "send_at": 1409348513,
- "subject": "Hello, World!",
- "template_id": "[YOUR TEMPLATE ID GOES HERE]",
+ },
+ "send_at": 1409348513,
+ "subject": "Hello, World!",
+ "template_id": "[YOUR TEMPLATE ID GOES HERE]",
"tracking_settings": {
"click_tracking": {
- "enable": true,
+ "enable": true,
"enable_text": true
- },
+ },
"ganalytics": {
- "enable": true,
- "utm_campaign": "[NAME OF YOUR REFERRER SOURCE]",
- "utm_content": "[USE THIS SPACE TO DIFFERENTIATE YOUR EMAIL FROM ADS]",
- "utm_medium": "[NAME OF YOUR MARKETING MEDIUM e.g. email]",
- "utm_name": "[NAME OF YOUR CAMPAIGN]",
+ "enable": true,
+ "utm_campaign": "[NAME OF YOUR REFERRER SOURCE]",
+ "utm_content": "[USE THIS SPACE TO DIFFERENTIATE YOUR EMAIL FROM ADS]",
+ "utm_medium": "[NAME OF YOUR MARKETING MEDIUM e.g. email]",
+ "utm_name": "[NAME OF YOUR CAMPAIGN]",
"utm_term": "[IDENTIFY PAID KEYWORDS HERE]"
- },
+ },
"open_tracking": {
- "enable": true,
+ "enable": true,
"substitution_tag": "%opentrack"
- },
+ },
"subscription_tracking": {
- "enable": true,
- "html": "If you would like to unsubscribe and stop receiving these emails <% clickhere %>.",
- "substitution_tag": "<%click here%>",
+ "enable": true,
+ "html": "If you would like to unsubscribe and stop receiving these emails <% clickhere %>.",
+ "substitution_tag": "<%click here%>",
"text": "If you would like to unsubscribe and stop receiveing these emails <% click here %>."
}
}
diff --git a/examples/subusers/subusers.js b/examples/subusers/subusers.js
index f72650e..8f03f49 100644
--- a/examples/subusers/subusers.js
+++ b/examples/subusers/subusers.js
@@ -30,8 +30,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
request.queryParams["username"] = 'test_string'
- request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+ request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
request.method = 'GET'
request.path = '/v3/subusers'
@@ -241,7 +241,7 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
request.queryParams["date"] = 'test_string'
request.queryParams["sort_by_direction"] = 'asc'
- request.queryParams["limit"] = '0'
+ request.queryParams["limit"] = '1'
request.queryParams["sort_by_metric"] = 'test_string'
request.queryParams["offset"] = '1'
diff --git a/examples/suppression/suppression.js b/examples/suppression/suppression.js
index 107e19c..4faf209 100644
--- a/examples/suppression/suppression.js
+++ b/examples/suppression/suppression.js
@@ -74,8 +74,8 @@ sg.API(request, function (response) {
var request = sg.emptyRequest()
-request.queryParams["start_time"] = '0'
- request.queryParams["end_time"] = '0'
+request.queryParams["start_time"] = '1'
+ request.queryParams["end_time"] = '1'
request.method = 'GET'
request.path = '/v3/suppression/bounces'
diff --git a/examples/user/user.js b/examples/user/user.js
index 3046178..7b2305c 100644
--- a/examples/user/user.js
+++ b/examples/user/user.js
@@ -311,7 +311,27 @@ sg.API(request, function (response) {
})
///////////////////////////////////////////////////
-// Retrieve Parse Webhook settings
+// Create a parse setting
+// POST /user/webhooks/parse/settings
+
+
+var request = sg.emptyRequest()
+request.body = {
+ "hostname": "myhostname.com",
+ "send_raw": false,
+ "spam_check": true,
+ "url": "http://email.myhosthame.com"
+};
+request.method = 'POST'
+request.path = '/v3/user/webhooks/parse/settings'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Retrieve all parse settings
// GET /user/webhooks/parse/settings
@@ -325,6 +345,53 @@ sg.API(request, function (response) {
})
///////////////////////////////////////////////////
+// Update a parse setting
+// PATCH /user/webhooks/parse/settings/{hostname}
+
+
+var request = sg.emptyRequest()
+request.body = {
+ "send_raw": true,
+ "spam_check": false,
+ "url": "http://newdomain.com/parse"
+};
+request.method = 'PATCH'
+request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Retrieve a specific parse setting
+// GET /user/webhooks/parse/settings/{hostname}
+
+
+var request = sg.emptyRequest()
+request.method = 'GET'
+request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
+// Delete a parse setting
+// DELETE /user/webhooks/parse/settings/{hostname}
+
+
+var request = sg.emptyRequest()
+request.method = 'DELETE'
+request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+sg.API(request, function (response) {
+ console.log(response.statusCode)
+ console.log(response.body)
+ console.log(response.headers)
+})
+
+///////////////////////////////////////////////////
// Retrieves Inbound Parse Webhook statistics.
// GET /user/webhooks/parse/stats
diff --git a/package.json b/package.json
index f7ad2e7..a551dbc 100644
--- a/package.json
+++ b/package.json
@@ -11,7 +11,7 @@
],
"name": "sendgrid",
"description": "Official SendGrid NodeJS library.",
- "version": "3.0.6",
+ "version": "3.0.7",
"homepage": "https://sendgrid.com",
"repository": {
"type": "git",
diff --git a/test/test.js b/test/test.js
index 88a0160..0c4979e 100644
--- a/test/test.js
+++ b/test/test.js
@@ -17,6 +17,7 @@ describe('test_access_settings_activity_get', function () {
request.port = 4010
}
request.queryParams["limit"] = '1'
+
request.method = 'GET'
request.path = '/v3/access_settings/activity'
request.headers['X-Mock'] = 200
@@ -184,6 +185,150 @@ describe('test_access_settings_whitelist__rule_id__delete', function () {
});
})
+describe('test_alerts_post', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = {
+ "email_to": "example@example.com",
+ "frequency": "daily",
+ "type": "stats_notification"
+};
+ request.method = 'POST'
+ request.path = '/v3/alerts'
+ request.headers['X-Mock'] = 201
+ it('test_alerts_post had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 201, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_alerts_get', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.method = 'GET'
+ request.path = '/v3/alerts'
+ request.headers['X-Mock'] = 200
+ it('test_alerts_get had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_alerts__alert_id__patch', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = {
+ "email_to": "example@example.com"
+};
+ request.method = 'PATCH'
+ request.path = '/v3/alerts/{alert_id}'
+ request.headers['X-Mock'] = 200
+ it('test_alerts__alert_id__patch had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_alerts__alert_id__get', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.method = 'GET'
+ request.path = '/v3/alerts/{alert_id}'
+ request.headers['X-Mock'] = 200
+ it('test_alerts__alert_id__get had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_alerts__alert_id__delete', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = null;
+ request.method = 'DELETE'
+ request.path = '/v3/alerts/{alert_id}'
+ request.headers['X-Mock'] = 204
+ it('test_alerts__alert_id__delete had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 204, 'response code is not correct')
+ done();
+ })
+ });
+})
+
describe('test_api_keys_post', function () {
this.timeout(30000);
var API_KEY = 'SendGrid API Key'
@@ -202,6 +347,7 @@ describe('test_api_keys_post', function () {
}
request.body = {
"name": "My API Key",
+ "sample": "data",
"scopes": [
"mail.send",
"alerts.create",
@@ -235,6 +381,8 @@ describe('test_api_keys_get', function () {
request.test = true
request.port = 4010
}
+ request.queryParams["limit"] = '1'
+
request.method = 'GET'
request.path = '/v3/api_keys'
request.headers['X-Mock'] = 200
@@ -414,6 +562,7 @@ describe('test_asm_groups_get', function () {
request.port = 4010
}
request.queryParams["id"] = '1'
+
request.method = 'GET'
request.path = '/v3/asm/groups'
request.headers['X-Mock'] = 200
@@ -572,6 +721,40 @@ describe('test_asm_groups__group_id__suppressions_get', function () {
});
})
+describe('test_asm_groups__group_id__suppressions_search_post', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = {
+ "recipient_emails": [
+ "exists1@example.com",
+ "exists2@example.com",
+ "doesnotexists@example.com"
+ ]
+};
+ request.method = 'POST'
+ request.path = '/v3/asm/groups/{group_id}/suppressions/search'
+ request.headers['X-Mock'] = 200
+ it('test_asm_groups__group_id__suppressions_search_post had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
describe('test_asm_groups__group_id__suppressions__email__delete', function () {
this.timeout(30000);
var API_KEY = 'SendGrid API Key'
@@ -764,6 +947,7 @@ describe('test_browsers_stats_get', function () {
request.queryParams["limit"] = 'test_string'
request.queryParams["offset"] = 'test_string'
request.queryParams["start_date"] = '2016-01-01'
+
request.method = 'GET'
request.path = '/v3/browsers/stats'
request.headers['X-Mock'] = 200
@@ -838,8 +1022,9 @@ describe('test_campaigns_get', function () {
request.test = true
request.port = 4010
}
- request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+ request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/campaigns'
request.headers['X-Mock'] = 200
@@ -1134,6 +1319,7 @@ describe('test_categories_get', function () {
request.queryParams["category"] = 'test_string'
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/categories'
request.headers['X-Mock'] = 200
@@ -1167,6 +1353,7 @@ describe('test_categories_stats_get', function () {
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["categories"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/categories/stats'
request.headers['X-Mock'] = 200
@@ -1201,6 +1388,7 @@ describe('test_categories_stats_sums_get', function () {
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["sort_by_direction"] = 'asc'
+
request.method = 'GET'
request.path = '/v3/categories/stats/sums'
request.headers['X-Mock'] = 200
@@ -1231,6 +1419,7 @@ describe('test_clients_stats_get', function () {
request.queryParams["aggregated_by"] = 'day'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["end_date"] = '2016-04-01'
+
request.method = 'GET'
request.path = '/v3/clients/stats'
request.headers['X-Mock'] = 200
@@ -1261,6 +1450,7 @@ describe('test_clients__client_type__stats_get', function () {
request.queryParams["aggregated_by"] = 'day'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["end_date"] = '2016-04-01'
+
request.method = 'GET'
request.path = '/v3/clients/{client_type}/stats'
request.headers['X-Mock'] = 200
@@ -1494,7 +1684,8 @@ describe('test_contactdb_lists__list_id__patch', function () {
request.body = {
"name": "newlistname"
};
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
+
request.method = 'PATCH'
request.path = '/v3/contactdb/lists/{list_id}'
request.headers['X-Mock'] = 200
@@ -1522,7 +1713,8 @@ describe('test_contactdb_lists__list_id__get', function () {
request.test = true
request.port = 4010
}
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
+
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}'
request.headers['X-Mock'] = 200
@@ -1552,6 +1744,7 @@ describe('test_contactdb_lists__list_id__delete', function () {
}
request.body = null;
request.queryParams["delete_contacts"] = 'true'
+
request.method = 'DELETE'
request.path = '/v3/contactdb/lists/{list_id}'
request.headers['X-Mock'] = 202
@@ -1612,7 +1805,8 @@ describe('test_contactdb_lists__list_id__recipients_get', function () {
}
request.queryParams["page"] = '1'
request.queryParams["page_size"] = '1'
- request.queryParams["list_id"] = '0'
+ request.queryParams["list_id"] = '1'
+
request.method = 'GET'
request.path = '/v3/contactdb/lists/{list_id}/recipients'
request.headers['X-Mock'] = 200
@@ -1669,8 +1863,9 @@ describe('test_contactdb_lists__list_id__recipients__recipient_id__delete', func
request.port = 4010
}
request.body = null;
- request.queryParams["recipient_id"] = '0'
- request.queryParams["list_id"] = '0'
+ request.queryParams["recipient_id"] = '1'
+ request.queryParams["list_id"] = '1'
+
request.method = 'DELETE'
request.path = '/v3/contactdb/lists/{list_id}/recipients/{recipient_id}'
request.headers['X-Mock'] = 204
@@ -1775,6 +1970,7 @@ describe('test_contactdb_recipients_get', function () {
}
request.queryParams["page"] = '1'
request.queryParams["page_size"] = '1'
+
request.method = 'GET'
request.path = '/v3/contactdb/recipients'
request.headers['X-Mock'] = 200
@@ -1887,7 +2083,9 @@ describe('test_contactdb_recipients_search_get', function () {
request.test = true
request.port = 4010
}
+ request.queryParams["%7Bfield_name%7D"] = 'test_string'
request.queryParams["{field_name}"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/contactdb/recipients/search'
request.headers['X-Mock'] = 200
@@ -2115,6 +2313,7 @@ describe('test_contactdb_segments__segment_id__patch', function () {
"name": "The Millers"
};
request.queryParams["segment_id"] = 'test_string'
+
request.method = 'PATCH'
request.path = '/v3/contactdb/segments/{segment_id}'
request.headers['X-Mock'] = 200
@@ -2142,7 +2341,8 @@ describe('test_contactdb_segments__segment_id__get', function () {
request.test = true
request.port = 4010
}
- request.queryParams["segment_id"] = '0'
+ request.queryParams["segment_id"] = '1'
+
request.method = 'GET'
request.path = '/v3/contactdb/segments/{segment_id}'
request.headers['X-Mock'] = 200
@@ -2172,6 +2372,7 @@ describe('test_contactdb_segments__segment_id__delete', function () {
}
request.body = null;
request.queryParams["delete_contacts"] = 'true'
+
request.method = 'DELETE'
request.path = '/v3/contactdb/segments/{segment_id}'
request.headers['X-Mock'] = 204
@@ -2201,6 +2402,7 @@ describe('test_contactdb_segments__segment_id__recipients_get', function () {
}
request.queryParams["page"] = '1'
request.queryParams["page_size"] = '1'
+
request.method = 'GET'
request.path = '/v3/contactdb/segments/{segment_id}/recipients'
request.headers['X-Mock'] = 200
@@ -2233,6 +2435,7 @@ describe('test_devices_stats_get', function () {
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["end_date"] = '2016-04-01'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/devices/stats'
request.headers['X-Mock'] = 200
@@ -2266,6 +2469,7 @@ describe('test_geo_stats_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
+
request.method = 'GET'
request.path = '/v3/geo/stats'
request.headers['X-Mock'] = 200
@@ -2298,6 +2502,7 @@ describe('test_ips_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["exclude_whitelabels"] = 'true'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/ips'
request.headers['X-Mock'] = 200
@@ -2730,7 +2935,7 @@ describe('test_mail_batch__batch_id__get', function () {
});
})
-describe('test_mail_send_beta_post', function () {
+describe('test_mail_send_post', function () {
this.timeout(30000);
var API_KEY = 'SendGrid API Key'
if(process.env.TRAVIS) {
@@ -2835,13 +3040,8 @@ describe('test_mail_send_beta_post', function () {
"send_at": 1409348513,
"subject": "Hello, World!",
"substitutions": {
- "sub": {
- "%name%": [
- "John",
- "Jane",
- "Sam"
- ]
- }
+ "id": "substitutions",
+ "type": "object"
},
"to": [
{
@@ -2890,9 +3090,9 @@ describe('test_mail_send_beta_post', function () {
}
};
request.method = 'POST'
- request.path = '/v3/mail/send/beta'
+ request.path = '/v3/mail/send'
request.headers['X-Mock'] = 202
- it('test_mail_send_beta_post had the correct response code', function(done) {
+ it('test_mail_send_post had the correct response code', function(done) {
sg.API(request, function (response) {
assert.equal(response.statusCode, 202, 'response code is not correct')
done();
@@ -2918,6 +3118,7 @@ describe('test_mail_settings_get', function () {
}
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/mail_settings'
request.headers['X-Mock'] = 200
@@ -3478,6 +3679,7 @@ describe('test_mailbox_providers_stats_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
+
request.method = 'GET'
request.path = '/v3/mailbox_providers/stats'
request.headers['X-Mock'] = 200
@@ -3507,6 +3709,7 @@ describe('test_partner_settings_get', function () {
}
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/partner_settings'
request.headers['X-Mock'] = 200
@@ -3625,6 +3828,7 @@ describe('test_stats_get', function () {
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["end_date"] = '2016-04-01'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/stats'
request.headers['X-Mock'] = 200
@@ -3689,8 +3893,9 @@ describe('test_subusers_get', function () {
request.port = 4010
}
request.queryParams["username"] = 'test_string'
- request.queryParams["limit"] = '0'
- request.queryParams["offset"] = '0'
+ request.queryParams["limit"] = '1'
+ request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/subusers'
request.headers['X-Mock'] = 200
@@ -3719,6 +3924,7 @@ describe('test_subusers_reputations_get', function () {
request.port = 4010
}
request.queryParams["usernames"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/subusers/reputations'
request.headers['X-Mock'] = 200
@@ -3752,6 +3958,7 @@ describe('test_subusers_stats_get', function () {
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["subusers"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/subusers/stats'
request.headers['X-Mock'] = 200
@@ -3785,6 +3992,7 @@ describe('test_subusers_stats_monthly_get', function () {
request.queryParams["offset"] = '1'
request.queryParams["date"] = 'test_string'
request.queryParams["sort_by_direction"] = 'asc'
+
request.method = 'GET'
request.path = '/v3/subusers/stats/monthly'
request.headers['X-Mock'] = 200
@@ -3819,6 +4027,7 @@ describe('test_subusers_stats_sums_get', function () {
request.queryParams["offset"] = '1'
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["sort_by_direction"] = 'asc'
+
request.method = 'GET'
request.path = '/v3/subusers/stats/sums'
request.headers['X-Mock'] = 200
@@ -4053,9 +4262,10 @@ describe('test_subusers__subuser_name__stats_monthly_get', function () {
}
request.queryParams["date"] = 'test_string'
request.queryParams["sort_by_direction"] = 'asc'
- request.queryParams["limit"] = '0'
+ request.queryParams["limit"] = '1'
request.queryParams["sort_by_metric"] = 'test_string'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/subusers/{subuser_name}/stats/monthly'
request.headers['X-Mock'] = 200
@@ -4087,6 +4297,7 @@ describe('test_suppression_blocks_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["end_time"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/suppression/blocks'
request.headers['X-Mock'] = 200
@@ -4203,8 +4414,9 @@ describe('test_suppression_bounces_get', function () {
request.test = true
request.port = 4010
}
- request.queryParams["start_time"] = '0'
- request.queryParams["end_time"] = '0'
+ request.queryParams["start_time"] = '1'
+ request.queryParams["end_time"] = '1'
+
request.method = 'GET'
request.path = '/v3/suppression/bounces'
request.headers['X-Mock'] = 200
@@ -4295,6 +4507,7 @@ describe('test_suppression_bounces__email__delete', function () {
}
request.body = null;
request.queryParams["email_address"] = 'example@example.com'
+
request.method = 'DELETE'
request.path = '/v3/suppression/bounces/{email}'
request.headers['X-Mock'] = 204
@@ -4326,6 +4539,7 @@ describe('test_suppression_invalid_emails_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["end_time"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/suppression/invalid_emails'
request.headers['X-Mock'] = 200
@@ -4501,6 +4715,7 @@ describe('test_suppression_spam_reports_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["end_time"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/suppression/spam_reports'
request.headers['X-Mock'] = 200
@@ -4566,6 +4781,7 @@ describe('test_suppression_unsubscribes_get', function () {
request.queryParams["limit"] = '1'
request.queryParams["end_time"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/suppression/unsubscribes'
request.headers['X-Mock'] = 200
@@ -4889,6 +5105,7 @@ describe('test_tracking_settings_get', function () {
}
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/tracking_settings'
request.headers['X-Mock'] = 200
@@ -5696,6 +5913,39 @@ describe('test_user_webhooks_event_test_post', function () {
});
})
+describe('test_user_webhooks_parse_settings_post', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = {
+ "hostname": "myhostname.com",
+ "send_raw": false,
+ "spam_check": true,
+ "url": "http://email.myhosthame.com"
+};
+ request.method = 'POST'
+ request.path = '/v3/user/webhooks/parse/settings'
+ request.headers['X-Mock'] = 201
+ it('test_user_webhooks_parse_settings_post had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 201, 'response code is not correct')
+ done();
+ })
+ });
+})
+
describe('test_user_webhooks_parse_settings_get', function () {
this.timeout(30000);
var API_KEY = 'SendGrid API Key'
@@ -5723,6 +5973,93 @@ describe('test_user_webhooks_parse_settings_get', function () {
});
})
+describe('test_user_webhooks_parse_settings__hostname__patch', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = {
+ "send_raw": true,
+ "spam_check": false,
+ "url": "http://newdomain.com/parse"
+};
+ request.method = 'PATCH'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ request.headers['X-Mock'] = 200
+ it('test_user_webhooks_parse_settings__hostname__patch had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_user_webhooks_parse_settings__hostname__get', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.method = 'GET'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ request.headers['X-Mock'] = 200
+ it('test_user_webhooks_parse_settings__hostname__get had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 200, 'response code is not correct')
+ done();
+ })
+ });
+})
+
+describe('test_user_webhooks_parse_settings__hostname__delete', function () {
+ this.timeout(30000);
+ var API_KEY = 'SendGrid API Key'
+ if(process.env.TRAVIS) {
+ var TEST_HOST = process.env.MOCK_HOST
+ } else {
+ var TEST_HOST = 'localhost'
+ }
+
+ var sg = require('../lib/sendgrid.js').SendGrid(API_KEY, TEST_HOST)
+
+ var request = sg.emptyRequest()
+ if(TEST_HOST == 'localhost') {
+ request.test = true
+ request.port = 4010
+ }
+ request.body = null;
+ request.method = 'DELETE'
+ request.path = '/v3/user/webhooks/parse/settings/{hostname}'
+ request.headers['X-Mock'] = 204
+ it('test_user_webhooks_parse_settings__hostname__delete had the correct response code', function(done) {
+ sg.API(request, function (response) {
+ assert.equal(response.statusCode, 204, 'response code is not correct')
+ done();
+ })
+ });
+})
+
describe('test_user_webhooks_parse_stats_get', function () {
this.timeout(30000);
var API_KEY = 'SendGrid API Key'
@@ -5744,6 +6081,7 @@ describe('test_user_webhooks_parse_stats_get', function () {
request.queryParams["start_date"] = '2016-01-01'
request.queryParams["end_date"] = '2016-04-01'
request.queryParams["offset"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/user/webhooks/parse/stats'
request.headers['X-Mock'] = 200
@@ -5815,6 +6153,7 @@ describe('test_whitelabel_domains_get', function () {
request.queryParams["exclude_subusers"] = 'true'
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/whitelabel/domains'
request.headers['X-Mock'] = 200
@@ -6161,6 +6500,7 @@ describe('test_whitelabel_ips_get', function () {
request.queryParams["ip"] = 'test_string'
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'GET'
request.path = '/v3/whitelabel/ips'
request.headers['X-Mock'] = 200
@@ -6278,6 +6618,7 @@ describe('test_whitelabel_links_post', function () {
};
request.queryParams["limit"] = '1'
request.queryParams["offset"] = '1'
+
request.method = 'POST'
request.path = '/v3/whitelabel/links'
request.headers['X-Mock'] = 201
@@ -6306,6 +6647,7 @@ describe('test_whitelabel_links_get', function () {
request.port = 4010
}
request.queryParams["limit"] = '1'
+
request.method = 'GET'
request.path = '/v3/whitelabel/links'
request.headers['X-Mock'] = 200
@@ -6334,6 +6676,7 @@ describe('test_whitelabel_links_default_get', function () {
request.port = 4010
}
request.queryParams["domain"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/whitelabel/links/default'
request.headers['X-Mock'] = 200
@@ -6362,6 +6705,7 @@ describe('test_whitelabel_links_subuser_get', function () {
request.port = 4010
}
request.queryParams["username"] = 'test_string'
+
request.method = 'GET'
request.path = '/v3/whitelabel/links/subuser'
request.headers['X-Mock'] = 200
@@ -6391,6 +6735,7 @@ describe('test_whitelabel_links_subuser_delete', function () {
}
request.body = null;
request.queryParams["username"] = 'test_string'
+
request.method = 'DELETE'
request.path = '/v3/whitelabel/links/subuser'
request.headers['X-Mock'] = 204