component-dbs-core
Version:
DTO objects shared among device backend
40 lines • 1.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.onDeviceTableStreamHandler = void 0;
const component_core_1 = require("@npco/component-core");
const depositService_1 = require("../deposits/depositService");
const transactionService_1 = require("../transactions/transactionService");
const middlewares_1 = require("../middlewares");
const appModule_1 = require("../appModule");
const devices_1 = require("../devices");
exports.onDeviceTableStreamHandler = component_core_1.withMiddlewares((event, context) => {
const { app } = context;
const stream = {};
event.Records.forEach((record) => {
const eventType = record.dynamodb.Keys.type.S.split('.')[0];
if (typeof stream[eventType] === 'undefined') {
stream[eventType] = [];
}
stream[eventType].push(record);
});
Object.keys(stream).forEach((eventType) => {
const records = stream[eventType];
switch (eventType) {
case 'deposit': {
app.get(depositService_1.DepositService).onDepositStream(records);
break;
}
case 'transaction': {
app.get(transactionService_1.TransactionService).onTransactionStream(records);
break;
}
case 'settings': {
app.get(devices_1.DeviceService).onDeviceSettingsStream(records);
break;
}
default:
break;
}
});
}, [middlewares_1.logMiddleware, component_core_1.bootstrapNestJSMiddleware(appModule_1.AppModule)]);
//# sourceMappingURL=deviceTableStreamHandler.js.map