diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | CHANGELOG.md | 4 | ||||
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | USAGE.md | 287 | ||||
-rw-r--r-- | examples/alerts/alerts.js | 80 | ||||
-rw-r--r-- | examples/apikeys/apikeys.js | 3 | ||||
-rw-r--r-- | examples/asm/asm.js | 21 | ||||
-rw-r--r-- | examples/campaigns/campaigns.js | 4 | ||||
-rw-r--r-- | examples/contactdb/contactdb.js | 15 | ||||
-rw-r--r-- | examples/mail/mail.js | 134 | ||||
-rw-r--r-- | examples/subusers/subusers.js | 6 | ||||
-rw-r--r-- | examples/suppression/suppression.js | 4 | ||||
-rw-r--r-- | examples/user/user.js | 69 | ||||
-rw-r--r-- | package.json | 2 | ||||
-rw-r--r-- | test/test.js | 391 |
15 files changed, 899 insertions, 127 deletions
@@ -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 @@ -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" } } ``` @@ -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 |