@incdevco/framework
Version:
node.js lambda framework
68 lines (36 loc) • 1.24 kB
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;
let oldModel;
let modelName;
if (record.dynamodb.NewImage) {
newModel = this.itemToObject(record.dynamodb.NewImage);
modelName = newModel.model;
}
if (record.dynamodb.OldImage) {
oldModel = this.itemToObject(record.dynamodb.OldImage);
if (!newModel) {
modelName = oldModel.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;