Upload files to ''
This commit is contained in:
parent
91f10d9c2d
commit
1e08b68429
43
Client.js
Normal file
43
Client.js
Normal file
@ -0,0 +1,43 @@
|
||||
var Promise = require('promise');
|
||||
var https = require('https');
|
||||
var concatStream = require('concat-stream');
|
||||
|
||||
function Client(host, serverKey) {
|
||||
this.host = host;
|
||||
this.serverKey = serverKey;
|
||||
}
|
||||
|
||||
Client.prototype.makeRequest = function makeRequest(controller, action, parameters) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var data = JSON.stringify(parameters);
|
||||
|
||||
var request = https.request({
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-Server-API-Key': this.serverKey
|
||||
},
|
||||
host: this.host,
|
||||
method: 'POST',
|
||||
path: '/api/v1/' + controller + '/' + action
|
||||
}, function (response) {
|
||||
response.pipe(concatStream(function (content) {
|
||||
var json = JSON.parse(content);
|
||||
if (json.status === 'success') {
|
||||
resolve(json.data);
|
||||
} else {
|
||||
reject(json.data);
|
||||
}
|
||||
}));
|
||||
});
|
||||
|
||||
request.on('error', function (error) {
|
||||
reject(error);
|
||||
});
|
||||
|
||||
request.write(data);
|
||||
|
||||
request.end();
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
module.exports = Client;
|
14
Message.js
Normal file
14
Message.js
Normal file
@ -0,0 +1,14 @@
|
||||
function Message(client, attributes) {
|
||||
this.client = client;
|
||||
this.attributes = attributes;
|
||||
}
|
||||
|
||||
Message.prototype.id = function id() {
|
||||
return this.attributes.id;
|
||||
}
|
||||
|
||||
Message.prototype.token = function token() {
|
||||
return this.attributes.token;
|
||||
}
|
||||
|
||||
module.exports = Message;
|
74
SendMessage.js
Normal file
74
SendMessage.js
Normal file
@ -0,0 +1,74 @@
|
||||
var SendResult = require('./SendResult');
|
||||
|
||||
function SendMessage(client) {
|
||||
this.attributes = {
|
||||
to: [],
|
||||
cc: [],
|
||||
bcc: [],
|
||||
headers: {},
|
||||
attachments: []
|
||||
};
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
SendMessage.prototype.to = function to(address) {
|
||||
this.attributes.to.push(address);
|
||||
};
|
||||
|
||||
SendMessage.prototype.cc = function cc(address) {
|
||||
this.attributes.cc.push(address);
|
||||
};
|
||||
|
||||
SendMessage.prototype.bcc = function bcc(address) {
|
||||
this.attributes.bcc.push(address);
|
||||
};
|
||||
|
||||
SendMessage.prototype.from = function from(address) {
|
||||
this.attributes.from = address;
|
||||
};
|
||||
|
||||
SendMessage.prototype.sender = function sender(address) {
|
||||
this.attributes.sender = address;
|
||||
};
|
||||
|
||||
SendMessage.prototype.subject = function subject(_subject) {
|
||||
this.attributes.subject = _subject;
|
||||
};
|
||||
|
||||
SendMessage.prototype.tag = function tag(_tag) {
|
||||
this.attributes.tag = _tag;
|
||||
};
|
||||
|
||||
SendMessage.prototype.replyTo = function replyTo(_replyTo) {
|
||||
this.attributes.reply_to = _replyTo;
|
||||
};
|
||||
|
||||
SendMessage.prototype.plainBody = function plainBody(content) {
|
||||
this.attributes.plain_body = content;
|
||||
};
|
||||
|
||||
SendMessage.prototype.htmlBody = function htmlBody(content) {
|
||||
this.attributes.html_body = content;
|
||||
};
|
||||
|
||||
SendMessage.prototype.header = function header(key, value) {
|
||||
this.attributes.headers[key] = value;
|
||||
};
|
||||
|
||||
SendMessage.prototype.attach = function attach(filename, contentType, data) {
|
||||
var attachment = {
|
||||
content_type: contentType,
|
||||
data: new Buffer(data).toString('base64'),
|
||||
name: filename
|
||||
};
|
||||
this.attributes.attachments.push(attachment);
|
||||
};
|
||||
|
||||
SendMessage.prototype.send = function send() {
|
||||
return this.client.makeRequest('send', 'message', this.attributes)
|
||||
.then(function (result) {
|
||||
return new SendResult(this.client, result);
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
module.exports = SendMessage;
|
28
SendRawMessage.js
Normal file
28
SendRawMessage.js
Normal file
@ -0,0 +1,28 @@
|
||||
var SendResult = require('./SendResult');
|
||||
|
||||
function SendRawMessage(client) {
|
||||
this.attributes = {};
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
SendRawMessage.prototype.mailFrom = function mailFrom(address) {
|
||||
this.attributes.mail_from = address;
|
||||
};
|
||||
|
||||
SendRawMessage.prototype.rcptTo = function rcptTo(address) {
|
||||
this.attributes.rcpt_to = (this.attributes.rcpt_to || []);
|
||||
this.attributes.rcpt_to.push(address);
|
||||
};
|
||||
|
||||
SendRawMessage.prototype.data = function data(content) {
|
||||
this.attributes.data = new Buffer(content).toString('base64');
|
||||
};
|
||||
|
||||
SendRawMessage.prototype.send = function send(callback) {
|
||||
return this.client.makeRequest('send', 'raw', this.attributes)
|
||||
.then(function (result) {
|
||||
return new SendResult(this.client, result);
|
||||
}.bind(this));
|
||||
};
|
||||
|
||||
module.exports = SendRawMessage;
|
26
SendResult.js
Normal file
26
SendResult.js
Normal file
@ -0,0 +1,26 @@
|
||||
var Message = require('./Message');
|
||||
|
||||
function SendResult(client, result) {
|
||||
this.client = client;
|
||||
this.result = result;
|
||||
}
|
||||
|
||||
SendResult.prototype.recipients = function recipients() {
|
||||
var messages;
|
||||
|
||||
if (!this._recipients) {
|
||||
this._recipients = {};
|
||||
messages = this.result.messages;
|
||||
for (var key in messages) {
|
||||
this._recipients[key.toLowerCase()] = new Message(this.client, messages[key]);
|
||||
}
|
||||
}
|
||||
|
||||
return this._recipients;
|
||||
};
|
||||
|
||||
SendResult.prototype.size = function size() {
|
||||
return this.recipients.length;
|
||||
};
|
||||
|
||||
module.exports = SendResult;
|
Loading…
x
Reference in New Issue
Block a user