UNPKG

prisme-flow

Version:

prisme platform flow engine

58 lines (49 loc) 1.68 kB
/** * Created by prisme.io on 09/06/2017. */ var _ = require('underscore') var utils = require('./lib/helpers/utils') var MessageTemplate = require('./lib/message-template.js') var emoji = require('node-emoji') module.exports = function (RED) { function BotAsk (config) { RED.nodes.createNode(this, config) var node = this this.answers = config.answers this.message = config.message this.inline = config.inline this.transports = ['telegram'] this.on('input', function (msg) { var chatId = utils.getChatId(msg) var messageId = utils.getMessageId(msg) var template = MessageTemplate(msg, node) var answers = null var message = null // check transport compatibility if (!utils.matchTransport(node, msg)) { return } // get from config or payload if (_.isArray(node.answers) && !_.isEmpty(node.answers)) { answers = node.answers } else if (_.isObject(msg.payload) && _.isArray(msg.payload.buttons) && !_.isEmpty(msg.payload.buttons)) { answers = msg.payload.buttons } // get from config or payload if (_.isString(node.message) && !_.isEmpty(node.message)) { message = node.message } else if (_.isObject(msg.payload) && _.isString(msg.payload.message) && !_.isEmpty(msg.payload.message)) { message = msg.payload.message } msg.payload = { type: 'buttons', content: message != null ? emoji.emojify(template(message)) : null, chatId: chatId, messageId: messageId, buttons: answers } node.send(msg) }) } RED.nodes.registerType('bot-ask', BotAsk) }