UNPKG

courtbot-engine

Version:

An engine for courtbot-like functionality to be included in city/county services sites.

68 lines (52 loc) 2.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = function (opt) { var options = (0, _defaultOptions2.default)(opt); var registrationSource = (0, _sources.registrationSourceFn)(options.dbUrl); var logger = _log4js2.default.getLogger("checkMissingCases"); logger.info("Checking for missing cases..."); return registrationSource.getRegistrationsByState(_registrationState2.default.UNBOUND).then(function (registrations) { return Promise.all(registrations.map(function (r) { return (0, _events.getCaseParties)(r.case_number).then(function (parties) { logger.debug("parties returned from search:", parties); if (parties.length != 0) { if (parties.length > 1) { logger.debug("Multiple parties found."); return (0, _events.sendNonReplyMessage)(r.contact, _messaging2.default.askParty(r.contact, r, parties), r.communication_type).then(function () { return registrationSource.updateRegistrationState(r.registration_id, _registrationState2.default.ASKED_PARTY); }); } else if (parties.length == 1) { logger.debug("Single party found"); return registrationSource.updateRegistrationName(r.registration_id, parties[0].name).then(function () { return (0, _events.sendNonReplyMessage)(r.contact, _messaging2.default.askReminder(r.contact, r, parties[0]), r.communication_type); }).then(function () { return registrationSource.updateRegistrationState(r.registration_id, _registrationState2.default.ASKED_REMINDER); }); } } else if ((0, _moment2.default)(parties.create_date).diff((0, _moment2.default)(), 'days') > options.UnboundTTL) { logger.debug("Expired registration found."); return (0, _events.sendNonReplyMessage)(r.phone, _messaging2.default.expiredRegistration(r), options).then(function () { return registrationSource.updateRegistrationState(r.registration_id, _registrationState2.default.UNSUBSCRIBED); }); } }); })); }).catch(function (err) { return logger.error("Error checking missing cases:", err); }); }; var _moment = require("moment"); var _moment2 = _interopRequireDefault(_moment); var _defaultOptions = require("./defaultOptions"); var _defaultOptions2 = _interopRequireDefault(_defaultOptions); var _sources = require("./sources"); var _registrationState = require("./registrationState"); var _registrationState2 = _interopRequireDefault(_registrationState); var _events = require("./events"); var _log4js = require("log4js"); var _log4js2 = _interopRequireDefault(_log4js); var _messaging = require("./messaging"); var _messaging2 = _interopRequireDefault(_messaging); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }