UNPKG

node-red-contrib-motechat

Version:

ultranet topic and payload communication

57 lines (43 loc) 1.33 kB
module.exports = function(RED){ "use strict" let caller = { call: require('../lib/mcClient.js').call } let getDDN = require('../lib/mcClient.js').getDDN function ObjectStorage(config){ RED.nodes.createNode(this, config) var node = this node.on('input', (msg, send, done) => { try{ send = send || function() { node.send.apply(node, arguments) } let DDN = ">svc/objc"; let func = config.func let name = config.name; let type = config.types; let timeout = {"t1":6,"t2":15} if (!name) { throw 'name should not be empty !!!' } if (!func) { throw 'func should not be empty !!!' } let params = { type: type } let payload = {...params, ...msg.payload} caller.call('', DDN, func, timeout, payload).then(reply => { let newMsg = Object.assign(msg, { hostDDN: getDDN(), name: name, payload: reply }) send([newMsg, null]) }).catch(err => send([null, err])) .finally(() => { if (done) done() }) }catch(err){ send([null, err]) } }) } RED.nodes.registerType("object", ObjectStorage) }