@chat21/chat21-node-sdk
Version:
Chat21 Nodejs SDK
108 lines (82 loc) • 2.8 kB
JavaScript
var Promise = require('promise');
var winston = require('./winston');
var Message = function(config, single, plural){
var request = require('./c21request.js')(config)
return {
send: function(sender_fullname, recipient_id, recipient_fullname, text, sender_id, attributes, type, metadata, group){
var message = {}
if (sender_id) {
message["sender_id"] = sender_id;
}
message["sender_fullname"] = sender_fullname;
message["recipient_id"] = recipient_id;
message["recipient_fullname"] = recipient_fullname;
message["text"] = text;
if (attributes) {
message["attributes"] = attributes;
}
if (type) {
message["type"] = type;
}
if (metadata) {
message["metadata"] = metadata;
}
if (group) {
message["group"] = group;
}
return new Promise(function(resolve, reject){
var admintoken = "";
if (config.admintoken) {
admintoken = "?token=" + encodeURIComponent(config.admintoken);
winston.debug("chat21-node-sdk admintoken", admintoken);
}
request.post('/' + plural + admintoken, message).then(function(data){
resolve(data)
}).catch(function(err){
reject(err)
})
})
},
sendToGroup: function(sender_fullname, recipient_id, recipient_fullname, text, sender_id, attributes, type, metadata, timestamp, group){
var message = {}
if (sender_id) {
message["sender_id"] = sender_id;
}
message["sender_fullname"] = sender_fullname;
message["recipient_id"] = recipient_id;
message["channel_type"] = "group";
message["recipient_fullname"] = recipient_fullname;
message["text"] = text;
if (attributes) {
message["attributes"] = attributes;
}
if (type) {
message["type"] = type;
}
if (metadata) {
message["metadata"] = metadata;
}
if (timestamp) {
message["timestamp"] = timestamp;
}
if (group) {
message["group"] = group;
}
winston.debug("chat21-node-sdk message.sendToGroup", message);
return new Promise(function(resolve, reject){
var admintoken = "";
if (config.admintoken) {
admintoken = "?token=" + encodeURIComponent(config.admintoken);
}
request.post('/' + plural + admintoken, message).then(function(data){
winston.debug("chat21-node-sdk message.sent", data);
resolve(data)
}).catch(function(err){
winston.error("chat21-node-sdk message.sent error", err);
reject(err)
})
})
},
}
}
module.exports = Message