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