UNPKG

botpress

Version:

The world's first CMS for bots. Easily create, manage and extend chatbots.

80 lines (61 loc) 2.75 kB
'use strict'; var _util = require('util'); var _util2 = _interopRequireDefault(_util); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _bluebird = require('bluebird'); var _bluebird2 = _interopRequireDefault(_bluebird); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new _bluebird2.default(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return _bluebird2.default.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } module.exports = ({ sendContent, db }) => { const getUser = (() => { var _ref = _asyncToGenerator(function* (id) { const knex = yield db.get(); const users = yield knex('users').where({ id: id }).orWhere('userId', id).limit(1).select('*'); if (!users || users.length <= 0) { throw new Error(`User "${id}" not found in the database`); } return users[0]; }); return function getUser(_x) { return _ref.apply(this, arguments); }; })(); /** * Proactively sends a user a message * @param {string|object} user id or a full user object * @param {string} elementOrRenderer The name of the renderer to use OR an element id * @param {object} data Additionnal data that will be passed to the renderer * @async * @memberof! ContentRenderer * @example * bp.renderers.sendToUser(event.user.id, '#!text-77734', { typingIndicators: false }) */ const sendToUser = (() => { var _ref2 = _asyncToGenerator(function* (user, elementOrRenderer, data) { if (!_lodash2.default.isString(elementOrRenderer)) { throw new Error('Invalid renderer: ' + elementOrRenderer); } if (_lodash2.default.isString(user)) { user = yield getUser(user); } if (!user || !user.id) { throw new Error('Invalid user object: ' + _util2.default.inspect(user)); } const text = 'This is not a real event, it has been forged by proactive.'; const forgedEvent = { platform: user.platform, user: user, type: 'proactive', text: text, raw: { forged: true, message: text, to: user && user.id } }; return sendContent(forgedEvent, elementOrRenderer, data); }); return function sendToUser(_x2, _x3, _x4) { return _ref2.apply(this, arguments); }; })(); return { sendToUser }; }; //# sourceMappingURL=proactive.js.map