@incdevco/framework
Version:
node.js lambda framework
48 lines (26 loc) • 926 B
JavaScript
let Promise = require('bluebird');
let TableStreamListener = require('../table-stream-listener');
/*
*
* Is Not Aware Of Table Name
*
*/
class ModelTableListener extends TableStreamListener {
constructor(logger) {
super(logger);
}
handleRecord(record) {
return Promise.try(() => {
let eventName = record.eventName;
let newModel = this.itemToObject(record.dynamodb.NewImage);
let oldModel = this.itemToObject(record.dynamodb.OldImage);
let modelName = newModel.model;
if (!this.handlers[modelName] || !this.handlers[modelName][eventName]) {
this.logger.log(`no handler for ${modelName}.${eventName}`);
return false;
}
return this.handlers[modelName][eventName](newModel, oldModel, record);
});
}
}
module.exports = ModelTableListener;