in provider/lib/utils.js [361:406]
function setupFollow(seq) {
var method = 'setupFollow';
try {
var feed = triggerDB.follow({
since: seq,
include_docs: true,
filter: filterDDName + '/' + triggersByWorker,
query_params: {worker: self.worker}
});
feed.on('change', (change) => {
var triggerIdentifier = change.id;
var doc = change.doc;
if (self.triggers[triggerIdentifier]) {
if (doc.status && doc.status.active === false) {
deleteTrigger(triggerIdentifier);
}
}
else {
//ignore changes to disabled triggers
if (!doc.status || doc.status.active === true) {
self.createTrigger(initTrigger(doc))
.then(triggerIdentifier => {
logger.info(method, triggerIdentifier, 'created successfully');
})
.catch(err => {
var message = 'Automatically disabled after receiving exception on create trigger: ' + err;
disableTrigger(triggerIdentifier, undefined, message);
logger.error(method, 'Disabled trigger', triggerIdentifier, 'due to exception:', err);
});
}
}
});
feed.on('error', function (err) {
logger.error(method, err);
});
feed.follow();
}
catch (err) {
logger.error(method, err);
}
}