courtbot-engine
Version:
An engine for courtbot-like functionality to be included in city/county services sites.
103 lines (79 loc) • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (name, options) {
var communicationType = "console" + (name || "");
_events2.default.on("query-communication-types", function (types) {
return types.push(communicationType);
});
var idleQuestion = {
type: "list",
name: "idle",
message: "What would you like to do?",
choices: ["Start a new registration", "Check for reminders", "Check for missing cases", new _inquirer2.default.Separator(), "Exit"]
};
_events2.default.on("add-routes", function (_ref) {
var registrationSource = _ref.registrationSource,
messageSource = _ref.messageSource;
function idlePrompt() {
return _inquirer2.default.prompt([idleQuestion]).then(function (result) {
switch (result.idle) {
case "Start a new registration":
return new Promise(function (resolve) {
var conversation = new _conversation2.default(communicationType, registrationSource, messageSource);
conversation.on("reply", function (reply, result) {
setTimeout(function () {
return result.promise = _inquirer2.default.prompt([{
type: "input",
name: "reply",
message: reply,
default: "END"
}]).then(function (replyResult) {
if (replyResult.reply === "END") {
resolve();
return;
}
conversation.parse(replyResult.reply, "tty");
});
}, 0);
});
_inquirer2.default.prompt([{
type: "input",
name: "init",
message: "Case number"
}]).then(function (initial) {
return conversation.parse(initial.init, "tty");
});
});
case "Check for reminders":
return (0, _sendDueReminders2.default)(options);
case "Check for missing cases":
return (0, _checkMissingCases2.default)(options);
case "Exit":
process.exit(0);
break;
}
}).then(idlePrompt);
}
idlePrompt();
});
_events2.default.on("send-non-reply", function (data) {
if (data.communicationType === communicationType) {
_log4js2.default.getLogger("console").info(data.msg);
}
});
};
var _log4js = require("log4js");
var _log4js2 = _interopRequireDefault(_log4js);
var _events = require("./events");
var _events2 = _interopRequireDefault(_events);
var _conversation = require("./conversation");
var _conversation2 = _interopRequireDefault(_conversation);
var _inquirer = require("inquirer");
var _inquirer2 = _interopRequireDefault(_inquirer);
var _sendDueReminders = require("./sendDueReminders");
var _sendDueReminders2 = _interopRequireDefault(_sendDueReminders);
var _checkMissingCases = require("./checkMissingCases");
var _checkMissingCases2 = _interopRequireDefault(_checkMissingCases);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }