prisme-flow
Version:
prisme platform flow engine
43 lines (33 loc) • 913 B
JavaScript
/**
* Created by prisme.io on 09/06/2017.
*/
var utils = require('./lib/helpers/utils')
module.exports = function (RED) {
function BotTopic (config) {
RED.nodes.createNode(this, config)
var node = this
node.rules = config.rules
this.on('input', function (msg) {
var originalMessage = msg.originalMessage
var chatContext = msg.chat()
var rules = node.rules
// do nothing
if (originalMessage == null || rules.length == 0) {
return
}
var output = []
var currentTopic = chatContext.get('topic')
var matched = false
rules.forEach(function (rule) {
if (!matched && utils.matchContext(currentTopic, rule.topic)) {
matched = true
output.push(msg)
} else {
output.push(null)
}
})
node.send(output)
})
}
RED.nodes.registerType('bot-topic', BotTopic)
}