UNPKG

@incdevco/framework

Version:
68 lines (36 loc) 1.24 kB
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;