Skip to content

Commit

Permalink
Refactored sending domains library (#167)
Browse files Browse the repository at this point in the history
* Updated sending domains lib and tests

* Updated sending domains doc and examples

* refactored verify to accept all verify attributes

* updated tests for payloads and cloneDeep

* Updated sending domains verbs, tests, docs, and examples

* Updated sending domains verbs, tests, docs, and examples
  • Loading branch information
aydrian committed Sep 7, 2016
1 parent b11ccff commit c299570
Show file tree
Hide file tree
Showing 16 changed files with 345 additions and 381 deletions.
60 changes: 22 additions & 38 deletions docs/resources/sendingDomains.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,35 @@
# Sending Domains

This library provides easy access to the [Sending Domains](https://www.sparkpost.com/api#/reference/sending-domains/) Resource.
This library provides easy access to the [Sending Domains](https://developers.sparkpost.com/api/sending-domains) Resource.

*Note: All methods return promises and accept an optional last argument callback. [Read about how we handle callbacks and promises](/docs/async.md).*

## Methods
* **all(callback)**
* **list()**<br />
List an overview of all sending domains in the account.
* `callback` - executed after task is completed. **required**
* standard `callback(err, data)`
* `err` - any error that occurred
* `data` - full response from request client
* **find(domain, callback)**

* **get(domain)**<br />
Retrieve a sending domain by its domain name
* `domain` - the name of the domain you want to look up **required**
* `callback` - see all function
* **create(domainBody, callback)**
* `domain` - the domain you want to look up **required**

* **create(createOpts)**<br />
Create a new sending domain
* `domainBody` - a sending domain object **required**
* `callback` - see all function
* **update(domainBody, callback)**
* `createOpts` - a hash of [sending domain attributes](https://developers.sparkpost.com/api/sending-domains#header-sending-domain-attributes) **required**

* **update(domain, updateOpts)**<br />
Update an existing sending domain
* `domainBody` - a sending domain object **required**
* `callback` - see all function
* **delete(domain, callback)**
* `domain` - the domain you want to update **required**
* `updateOpts` - a hash of [sending domain attributes](https://developers.sparkpost.com/api/sending-domains#header-sending-domain-attributes) **required**

* **delete(domain)**<br />
Delete an existing sending domain
* `domain` - the name of the domain you want to delete **required**
* `callback` - see all function
* **verify(options, callback)**
* `domain` - the domain you want to delete **required**

* **verify(domain, options)**<br />
Validate the specified verification field types for a sending domain
* `options.domain` - the name of the domain you want to verify **required**
* `options.verifyDKIM` - initiates a check against the DKIM record default: `true`
* `options.verifySPF` - initiates a check against the SPF record default: `true`
* `domain` - the domain you want to verify **required**
* `options` - a hash of [verify attributes](https://developers.sparkpost.com/api/sending-domains#header-verify-attributes) **required**

## Examples

```js
var SparkPost = require('sparkpost');
var client = new SparkPost('YOUR_API_KEY');

client.sendingDomains.all(function(err, data) {
if(err) {
console.log(err);
return;
}

console.log(data);
});

```

Check out all the examples provided [here](/examples/sendingDomains).
Visit our examples section to see all of [our sending domains resource examples](/examples/sendingDomains).
36 changes: 36 additions & 0 deletions examples/sendingDomains/create.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
'use strict';

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key)
, createOpts = {
domain: 'example1.com',
dkim: {
'private': 'MIICXgIBAAKBgQC+W6scd3XWwvC/hPRksfDYFi3ztgyS9OSqnnjtNQeDdTSD1DRx/xFar2wjmzxp2+SnJ5pspaF77VZveN3P/HVmXZVghr3asoV9WBx/uW1nDIUxU35L4juXiTwsMAbgMyh3NqIKTNKyMDy4P8vpEhtH1iv/BrwMdBjHDVCycB8WnwIDAQABAoGBAITb3BCRPBi5lGhHdn+1RgC7cjUQEbSb4eFHm+ULRwQ0UIPWHwiVWtptZ09usHq989fKp1g/PfcNzm8c78uTS6gCxfECweFCRK6EdO6cCCr1cfWvmBdSjzYhODUdQeyWZi2ozqd0FhGWoV4VHseh4iLj36DzleTLtOZj3FhAo1WJAkEA68T+KkGeDyWwvttYtuSiQCCTrXYAWTQnkIUxduCp7Ap6tVeIDn3TaXTj74UbEgaNgLhjG4bX//fdeDW6PaK9YwJBAM6xJmwHLPMgwNVjiz3u/6fhY3kaZTWcxtMkXCjh1QE82KzDwqyrCg7EFjTtFysSHCAZxXZMcivGl4TZLHnydJUCQQCx16+M+mAatuiCnvxlQUMuMiSTNK6Amzm45u9v53nlZeY3weYMYFdHdfe1pebMiwrT7MI9clKebz6svYJVmdtXAkApDAc8VuR3WB7TgdRKNWdyGJGfoD1PO1ZE4iinOcoKV+IT1UCY99Kkgg6C7j62n/8T5OpRBvd5eBPpHxP1F9BNAkEA5Nf2VO9lcTetksHdIeKK+F7sio6UZn0Rv7iUo3ALrN1D1cGfWIh2dj3ko1iSreyNVSwGW0ePP27qDmU+u6/Y1g==',
'public': 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+W6scd3XWwvC/hPRksfDYFi3ztgyS9OSqnnjtNQeDdTSD1DRx/xFar2wjmzxp2+SnJ5pspaF77VZveN3P/HVmXZVghr3asoV9WBx/uW1nDIUxU35L4juXiTwsMAbgMyh3NqIKTNKyMDy4P8vpEhtH1iv/BrwMdBjHDVCycB8WnwIDAQAB',
selector: 'brisbane',
headers: 'from:to:subject:date'
}
};

// Promise
client.sendingDomains.create(createOpts)
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Callback
client.sendingDomains.create(createOpts, function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log('Congrats you can use our client library!');
console.log(data);
}
});
24 changes: 0 additions & 24 deletions examples/sendingDomains/create_sendingDomain.js

This file was deleted.

27 changes: 27 additions & 0 deletions examples/sendingDomains/delete.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
'use strict';

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key);

// Promise
client.sendingDomains.delete('example1.com')
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Callback
client.sendingDomains.delete('example1.com', function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log('Congrats you can use our client library!');
console.log(data);
}
});
14 changes: 0 additions & 14 deletions examples/sendingDomains/delete_sendingDomain.js

This file was deleted.

27 changes: 27 additions & 0 deletions examples/sendingDomains/get.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
'use strict';

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key);

// Promise
client.sendingDomains.get('example1.com')
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Callback
client.sendingDomains.get('example1.com', function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log('Congrats you can use our client library!');
console.log(data);
}
});
14 changes: 0 additions & 14 deletions examples/sendingDomains/get_all_sendingDomains.js

This file was deleted.

14 changes: 0 additions & 14 deletions examples/sendingDomains/get_sendingDomain.js

This file was deleted.

27 changes: 27 additions & 0 deletions examples/sendingDomains/list.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
'use strict';

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key);

// Promise
client.sendingDomains.list()
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Callback
client.sendingDomains.list(function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log('Congrats you can use our client library!');
console.log(data);
}
});
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,8 @@

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key);

var domain = {
domain: 'example1.com',
, client = new SparkPost(key)
, updateOpts = {
dkim: {
'private': 'MIICXgIBAAKBgQC+W6scd3XWwvC/hPRksfDYFi3ztgyS9OSqnnjtNQeDdTSD1DRx/xFar2wjmzxp2+SnJ5pspaF77VZveN3P/HVmXZVghr3asoV9WBx/uW1nDIUxU35L4juXiTwsMAbgMyh3NqIKTNKyMDy4P8vpEhtH1iv/BrwMdBjHDVCycB8WnwIDAQABAoGBAITb3BCRPBi5lGhHdn+1RgC7cjUQEbSb4eFHm+ULRwQ0UIPWHwiVWtptZ09usHq989fKp1g/PfcNzm8c78uTS6gCxfECweFCRK6EdO6cCCr1cfWvmBdSjzYhODUdQeyWZi2ozqd0FhGWoV4VHseh4iLj36DzleTLtOZj3FhAo1WJAkEA68T+KkGeDyWwvttYtuSiQCCTrXYAWTQnkIUxduCp7Ap6tVeIDn3TaXTj74UbEgaNgLhjG4bX//fdeDW6PaK9YwJBAM6xJmwHLPMgwNVjiz3u/6fhY3kaZTWcxtMkXCjh1QE82KzDwqyrCg7EFjTtFysSHCAZxXZMcivGl4TZLHnydJUCQQCx16+M+mAatuiCnvxlQUMuMiSTNK6Amzm45u9v53nlZeY3weYMYFdHdfe1pebMiwrT7MI9clKebz6svYJVmdtXAkApDAc8VuR3WB7TgdRKNWdyGJGfoD1PO1ZE4iinOcoKV+IT1UCY99Kkgg6C7j62n/8T5OpRBvd5eBPpHxP1F9BNAkEA5Nf2VO9lcTetksHdIeKK+F7sio6UZn0Rv7iUo3ALrN1D1cGfWIh2dj3ko1iSreyNVSwGW0ePP27qDmU+u6/Y1g==',
'public': 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+W6scd3XWwvC/hPRksfDYFi3ztgyS9OSqnnjtNQeDdTSD1DRx/xFar2wjmzxp2+SnJ5pspaF77VZveN3P/HVmXZVghr3asoV9WBx/uW1nDIUxU35L4juXiTwsMAbgMyh3NqIKTNKyMDy4P8vpEhtH1iv/BrwMdBjHDVCycB8WnwIDAQAB',
Expand All @@ -14,11 +12,23 @@ var key = 'YOURAPIKEY'
}
};

client.sendingDomains.update(domain, function(err, data) {
client.sendingDomains.update('example1.com', updateOpts)
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Using a callback
client.sendingDomains.update('example1.com', updateOpts, function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log(data);
console.log('Congrats you can use our client library!');
console.log(data);
}
});
33 changes: 33 additions & 0 deletions examples/sendingDomains/verify.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
'use strict';

var key = 'YOURAPIKEY'
, SparkPost = require('sparkpost')
, client = new SparkPost(key)
, options = {
dkim_verify: true,
spf_verify: true,
abuse_at_verify: true,
postmaster_at_verify: true
};

// Promise
client.sendingDomains.verify('example1.com', options)
.then(data => {
console.log('Congrats you can use our client library!');
console.log(data);
})
.catch(err => {
console.log('Whoops! Something went wrong');
console.log(err);
});

// Callback
client.sendingDomains.verify('example1.com', options, function(err, data) {
if (err) {
console.log('Whoops! Something went wrong');
console.log(err);
} else {
console.log('Congrats you can use our client library!');
console.log(data);
}
});
17 changes: 0 additions & 17 deletions examples/sendingDomains/verify_sendingDomain_default.js

This file was deleted.

18 changes: 0 additions & 18 deletions examples/sendingDomains/verify_sendingDomain_dkim_only.js

This file was deleted.

18 changes: 0 additions & 18 deletions examples/sendingDomains/verify_sendingDomain_spf_only.js

This file was deleted.

0 comments on commit c299570

Please sign in to comment.