airpay-correlationid-middleware
Version:
correlationid middleware
32 lines (20 loc) • 621 B
JavaScript
const { v1: uuidV1 } = require('uuid');
const isValidUUID = (uuid) => {
const expression = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
if (expression.test(uuid)) {
return true;
}
return false;
};
const middleware = (req, res, next) => {
const { headers: { 'x-coreplatform-correlationid': correlationid } } = req;
if (correlationid && isValidUUID(correlationid)) {
next();
return true;
}
const newCorrelationid = uuidV1();
req.headers['x-coreplatform-correlationid'] = newCorrelationid;
next();
return true;
};
module.exports = middleware;