Skip to content

Commit

Permalink
Merge pull request #1 from danielsss/dev
Browse files Browse the repository at this point in the history
Dev merge
  • Loading branch information
danielsss authored Feb 26, 2019
2 parents 61d2580 + 14bcbf3 commit 5504f3d
Show file tree
Hide file tree
Showing 10 changed files with 159 additions and 106 deletions.
74 changes: 26 additions & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,64 +92,42 @@ sendMessage();
* `proxy` - axios proxy \[`default`: null]
* `timeout` - axios timeout \[`default`: 1000 * 6]

## SendCloud Methods
## Methods of `SendCloud`

#### Deliveries

+ **.send(Object)** - [Regular delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#regular-delivery)
+ **.sendTemplate(Object)** - [Template delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#template-delivery)
+ **.sendCalendar(Object)** - [Send meeting calendar](http://www.sendcloud.net/doc/en/email_v2/send_email/#send-meeting-calendar)
+ **.taskInfo(Object)** - [List task info](http://www.sendcloud.net/doc/en/email_v2/send_email/#http-request-method)
+ **delivery.send(Object)** - [Regular delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#regular-delivery)
+ **delivery.sendTemplate(Object)** - [Template delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#template-delivery)
+ **delivery.sendCalendar(Object)** - [Send meeting calendar](http://www.sendcloud.net/doc/en/email_v2/send_email/#send-meeting-calendar)
+ **delivery.taskInfo(Object)** - [List task info](http://www.sendcloud.net/doc/en/email_v2/send_email/#http-request-method)

#### Email Template

+ **.batchQuery(Object)** - [Basic information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **.query(Object)** - [Detailed information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query)
+ **.add(Object)** - [Adding template to sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#add)
+ **.delete(Object)** - [Deleting email template from sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **.modification(Object)** - [Name, content, subject and type of the template can be modified.](http://www.sendcloud.net/doc/en/email_v2/template_do/#modification)
+ **template.batchQuery(Object)** - [Basic information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **template.query(Object)** - [Detailed information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query)
+ **template.add(Object)** - [Adding template to sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#add)
+ **template.delete(Object)** - [Deleting email template from sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **template.update(Object)** - [Name, content, subject and type of the template can be modified.](http://www.sendcloud.net/doc/en/email_v2/template_do/#modification)

#### Address List

+ **.batchQueryAddressList(Object)** - [Query address list (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/)
+ **.addAddressList(Object)** - [Adding address to list](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-address-list)
+ **.deleteAddressList(Object)** - [Deleting address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-address-list)
+ **.modifyAddressList(Object)** - [Modify address list or update address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-address-list)
+ **.batchQueryListMember(Object)** - [Query list member (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member-batch-query)
+ **.queryListMember(Object)** - [Query list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member)
+ **.addListMember(Object)** - [Add list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-list-member)
+ **.modifyListMember(Object)** - [Modify list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-list-member)
+ **.deleteListMember(Object)** - [Delete list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-list-member)
+ **addressList.batchQueryAddress(Object)** - [Query address list (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/)
+ **addressList.addAddress(Object)** - [Adding address to list](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-address-list)
+ **addressList.deleteAddress(Object)** - [Deleting address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-address-list)
+ **addressList.updateAddress(Object)** - [Modify address list or update address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-address-list)
+ **addressList.batchQueryMember(Object)** - [Query list member (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member-batch-query)
+ **addressList.queryMember(Object)** - [Query list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member)
+ **addressList.addMember(Object)** - [Add list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-list-member)
+ **addressList.updateMember(Object)** - [Modify list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-list-member)
+ **addressList.deleteMember(Object)** - [Delete list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-list-member)

## Aliases
* all the method's parameter same to [here](#sendcloud-methods)
#### Email Label

#### Deliveries

+ **delivery.send(Object)}**
+ **delivery.sendTemplate(Object)}**
+ **delivery.sendCalendar(Object)}**
+ **delivery.taskInfo(Object)}**

#### Email Template

+ **template.batchQuery(Object)}**
+ **template.query(Object)}**
+ **template.add(Object)}**
+ **template.delete(Object)}**
+ **template.update(Object)}**

#### Address List

+ **addressList.batchQueryAddress(Object)}**
+ **addressList.addAddress(Object)}**
+ **addressList.deleteAddress(Object)}**
+ **addressList.updateAddress(Object)}**
+ **addressList.batchQueryMember(Object)}**
+ **addressList.queryMember(Object)}**
+ **addressList.addMember(Object)}**
+ **addressList.updateMember(Object)}**
+ **addressList.deleteMember(Object)}**
+ **emailLabel.batchQuery(Object)** - [List of returned labels (batchQuery)](http://www.sendcloud.net/doc/en/email_v2/label_do/#query-batch-query)
+ **emailLabel.getLabel(Object)** - [Get one label by labelId](http://www.sendcloud.net/doc/en/email_v2/label_do/#query)
+ **emailLabel.add(Object)** - [Adding label](http://www.sendcloud.net/doc/en/email_v2/label_do/#add)
+ **emailLabel.delete(Object)** - [Deleting email label by id](http://www.sendcloud.net/doc/en/email_v2/label_do/#delete)
+ **emailLabel.update(Object)** - [List of returned labels (batchQuery)](http://www.sendcloud.net/doc/en/email_v2/label_do/#modify)



Expand All @@ -159,7 +137,7 @@ sendMessage();
- [x] Deliveries
- [x] Email Template
- [x] Address List
- [ ] Email Label
- [x] Email Label
- [ ] Domain
- [ ] API_USER
- [ ] User Information
Expand Down
64 changes: 28 additions & 36 deletions docs/contents.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,32 @@
#### SendCloud
+ **.batchQueryAddressList(Object)}** - [Query address list (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/)
+ **.addAddressList(Object)}** - [Adding address to list](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-address-list)
+ **.deleteAddressList(Object)}** - [Deleting address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-address-list)
+ **.modifyAddressList(Object)}** - [Modify address list or update address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-address-list)
+ **.batchQueryListMember(Object)}** - [Query list member (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member-batch-query)
+ **.queryListMember(Object)}** - [Query list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member)
+ **.addListMember(Object)}** - [Add list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-list-member)
+ **.modifyListMember(Object)}** - [Modify list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-list-member)
+ **.deleteListMember(Object)}** - [Delete list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-list-member)
+ **.send(Object)}** - [Regular delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#regular-delivery)
+ **.sendTemplate(Object)}** - [Template delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#template-delivery)
+ **.sendCalendar(Object)}** - [Send meeting calendar](http://www.sendcloud.net/doc/en/email_v2/send_email/#send-meeting-calendar)
+ **.taskInfo(Object)}** - [List task info](http://www.sendcloud.net/doc/en/email_v2/send_email/#http-request-method)
+ **.batchQuery(Object)}** - [Basic information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **.query(Object)}** - [Detailed information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query)
+ **.add(Object)}** - [Adding template to sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#add)
+ **.delete(Object)}** - [Deleting email template from sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **.modification(Object)}** - [Name, content, subject and type of the template can be modified.](http://www.sendcloud.net/doc/en/email_v2/template_do/#modification)


#### Aliases
+ **addressList.batchQueryAddress(Object)}**
+ **addressList.addAddress(Object)}**
+ **addressList.deleteAddress(Object)}**
+ **addressList.updateAddress(Object)}**
+ **addressList.batchQueryMember(Object)}**
+ **addressList.queryMember(Object)}**
+ **addressList.addMember(Object)}**
+ **addressList.updateMember(Object)}**
+ **addressList.deleteMember(Object)}**
+ **delivery.send(Object)}**
+ **delivery.sendTemplate(Object)}**
+ **delivery.sendCalendar(Object)}**
+ **delivery.taskInfo(Object)}**
+ **template.batchQuery(Object)}**
+ **template.query(Object)}**
+ **template.add(Object)}**
+ **template.delete(Object)}**
+ **template.update(Object)}**


+ **addressList.batchQueryAddress(Object)** - [Query address list (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/)
+ **addressList.addAddress(Object)** - [Adding address to list](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-address-list)
+ **addressList.deleteAddress(Object)** - [Deleting address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-address-list)
+ **addressList.updateAddress(Object)** - [Modify address list or update address list](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-address-list)
+ **addressList.batchQueryMember(Object)** - [Query list member (batch query)](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member-batch-query)
+ **addressList.queryMember(Object)** - [Query list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#query-list-member)
+ **addressList.addMember(Object)** - [Add list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#add-list-member)
+ **addressList.updateMember(Object)** - [Modify list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#modify-list-member)
+ **addressList.deleteMember(Object)** - [Delete list member](http://www.sendcloud.net/doc/en/email_v2/list_do/#delete-list-member)

+ **delivery.send(Object)** - [Regular delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#regular-delivery)
+ **delivery.sendTemplate(Object)** - [Template delivery](http://www.sendcloud.net/doc/en/email_v2/send_email/#template-delivery)
+ **delivery.sendCalendar(Object)** - [Send meeting calendar](http://www.sendcloud.net/doc/en/email_v2/send_email/#send-meeting-calendar)
+ **delivery.taskInfo(Object)** - [List task info](http://www.sendcloud.net/doc/en/email_v2/send_email/#http-request-method)

+ **emailLabel.batchQuery(Object)** - [List of returned labels (batchQuery)](http://www.sendcloud.net/doc/en/email_v2/label_do/#query-batch-query)
+ **emailLabel.getLabel(Object)** - [Get one label by labelId](http://www.sendcloud.net/doc/en/email_v2/label_do/#query)
+ **emailLabel.add(Object)** - [Adding label](http://www.sendcloud.net/doc/en/email_v2/label_do/#add)
+ **emailLabel.delete(Object)** - [Deleting email label by id](http://www.sendcloud.net/doc/en/email_v2/label_do/#delete)
+ **emailLabel.update(Object)** - [List of returned labels (batchQuery)](http://www.sendcloud.net/doc/en/email_v2/label_do/#modify)

+ **template.batchQuery(Object)** - [Basic information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **template.query(Object)** - [Detailed information of returned email template](http://www.sendcloud.net/doc/en/email_v2/template_do/#query)
+ **template.add(Object)** - [Adding template to sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#add)
+ **template.delete(Object)** - [Deleting email template from sendCloud](http://www.sendcloud.net/doc/en/email_v2/template_do/#query-batch-query)
+ **template.update(Object)** - [Name, content, subject and type of the template can be modified.](http://www.sendcloud.net/doc/en/email_v2/template_do/#modification)
16 changes: 15 additions & 1 deletion index.d.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
type Options = object;

export interface decomposeAddressResponse {
name: string;
address: string;
}

export interface Delivery {
send(options: Options): Promise<any>;
sendTemplate(options: Options): Promise<any>;
Expand Down Expand Up @@ -30,6 +35,14 @@ export interface AddressList {
deleteMember(options: Options): Promise<any>;
}

export interface EmailLabel {
add(optionds: Options): Promise<any>;
batchQuery(optionds: Options): Promise<any>;
delete(optionds: Options): Promise<any>;
getLabel(optionds: Options): Promise<any>;
update(optionds: Options): Promise<any>;
}

export interface SendCouldStaticOptions {
apiUser: string;
apiKey: string;
Expand All @@ -46,8 +59,9 @@ export class SendCloud {
public delivery: Delivery;
public template: Template;
public addressList: AddressList;
public emailLabel: EmailLabel;
}

export function decomposeAddress(address: string): {name: string, address: string};
export function decomposeAddress(address: string): decomposeAddressResponse;
export function addressParser(addresses: string | string[], tag: string): string;
export default function createClient(options: SendCouldStaticOptions): SendCloud;
2 changes: 1 addition & 1 deletion lib/builder.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ const builder = function(source, definitions) {
debug('retry = %d', retry);
const mixed = Object.assign({}, options, params);
debug('making a request to: %s with method:%s\nparameters: %j', api, def, mixed);
return tryMultipleRequest(api, {data: mixed}, axiosOptions, retry, context.method);
return tryMultipleRequest(api, mixed, axiosOptions, retry, context.method);
};
}
};
Expand Down
11 changes: 11 additions & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,14 @@ const builder = require('./builder');
const deliveries = require('./schemas/deliveries');
const template = require('./schemas/email.template');
const addressList = require('./schemas/address.list');
const emailLabel = require('./schemas/email.label');

/**
* @property {Object} delivery - about email delivery
* @property {Object} template - template management
* @property {Object} addressList - address list management
* @property {Object} emailLabel - Label provides another way to get stats of emails.
* You can query, add, delete and modify labels with API.
*/
class SendCloud {
/* istanbul ignore next */
Expand Down Expand Up @@ -36,20 +39,28 @@ class SendCloud {
builder(SendCloud, deliveries);
builder(SendCloud, template);
builder(SendCloud, addressList);
builder(SendCloud, emailLabel);

/**
* @description create the proxies of sendCloud
* @param {Object} options - {...}
* @return {SendCloud} the instance of sendCloud
*/
const createClient = function(options) {
const sendCloud = new SendCloud(options);

const target = {
delivery: {},
template: {},
addressList: {},
emailLabel: {},
};

const schemas = [
{name: 'delivery', context: deliveries},
{name: 'template', context: template},
{name: 'addressList', context: addressList},
{name: 'emailLabel', context: emailLabel},
];

for (const schema of schemas) {
Expand Down
39 changes: 39 additions & 0 deletions lib/schemas/email.label.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
'use strict';

module.exports = {
batchQueryEmailLabels: {
href: '/label/list',
method: 'post',
desc: 'List of returned labels (batchQuery)',
doc: 'http://www.sendcloud.net/doc/en/email_v2/label_do/#query-batch-query',
alias: 'batchQuery',
},
queryEmailLabel: {
href: '/label/get',
method: 'post',
desc: 'Get one label by labelId',
doc: 'http://www.sendcloud.net/doc/en/email_v2/label_do/#query',
alias: 'getLabel',
},
addEmailLabel: {
href: '/label/add',
method: 'post',
desc: 'Adding label',
doc: 'http://www.sendcloud.net/doc/en/email_v2/label_do/#add',
alias: 'add',
},
deleteEmailLabel: {
href: '/label/delete',
method: 'post',
desc: 'Deleting email label by id',
doc: 'http://www.sendcloud.net/doc/en/email_v2/label_do/#delete',
alias: 'delete',
},
modifyEmailLabel: {
href: '/label/modify',
method: 'post',
desc: 'List of returned labels (batchQuery)',
doc: 'http://www.sendcloud.net/doc/en/email_v2/label_do/#modify',
alias: 'update',
},
};
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mail-sc.js",
"version": "1.0.7",
"version": "1.0.8",
"description": "A wrapped email sdk for [SendCloud](https://www.sendcloud.net)",
"main": "lib/index.js",
"scripts": {
Expand Down
20 changes: 11 additions & 9 deletions scripts/doc.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ const getModuleName = function(filename) {
'deliveries.js': 'delivery',
'address.list.js': 'addressList',
'email.template.js': 'template',
'email.label.js': 'emailLabel',
}[filename];
};

Expand All @@ -33,22 +34,23 @@ const builder = async function() {
}

let contents = '#### SendCloud\n';
for (const schemaObject of schemas) {
const schema = schemaObject.content;
for (const key in schema) {
if (!schema.hasOwnProperty(key)) continue;
const helper = `[${schema[key].desc}](${schema[key].doc})`;
contents += `+ **.${key}(Object)}**\t-\t${helper}\n`;
}
}
// for (const schemaObject of schemas) {
// const schema = schemaObject.content;
// for (const key in schema) {
// if (!schema.hasOwnProperty(key)) continue;
// const helper = `[${schema[key].desc}](${schema[key].doc})`;
// contents += `+ **.${key}(Object)}**\t-\t${helper}\n`;
// }
// }

contents += '\n\n#### Aliases\n';
for (const schemaObject of schemas) {
const schema = schemaObject.content;
const moduleName = schemaObject.moduleName;
for (const key in schema) {
if (!schema.hasOwnProperty(key)) continue;
contents += `+ **${moduleName}.${schema[key].alias}(Object)}**\n`;
const helper = `[${schema[key].desc}](${schema[key].doc})`;
contents += `+ **${moduleName}.${schema[key].alias}(Object)** - ${helper}\n`;
}
}

Expand Down
Loading

0 comments on commit 5504f3d

Please sign in to comment.