bragg-firehose
Version:
bragg middleware for Firehose transformation trigger
20 lines (17 loc) • 672 B
JavaScript
;
module.exports = () => {
return ctx => {
if (!ctx.path && ctx.req.records && ctx.req.records.length > 0 && ctx.req.deliveryStreamArn.startsWith('arn:aws:firehose:')) {
const streamName = ctx.req.deliveryStreamArn.split('/').pop();
ctx.request.body = ctx.req.records.map(record => {
return {
recordId: record.recordId,
approximateArrivalTimestamp: record.approximateArrivalTimestamp,
data: Buffer.from(record.data, 'base64').toString()
};
});
Object.defineProperty(ctx, 'path', {enumerable: true, value: `firehose:${streamName}`});
Object.defineProperty(ctx, 'method', {enumerable: true, value: 'post'});
}
};
};