const express = require('express')
const app = express()
function analyticsMiddleware(req, res, next) {
const requestPath = req.originalUrl || req.url
const requestMethod = req.method
const requestIp =
req.headers['x-forwarded-for']?.split(',')[0] ||
req.headers['x-real-ip'] ||
req.ip ||
req.connection?.remoteAddress ||
'127.0.0.1'
const requestHeaders = {
'User-Agent': req.headers['user-agent'],
'Host': req.headers['host'],
'Referer': req.headers['referer'],
}
fetch('https://analytics.usehall.com/visit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${process.env.HALL_API_KEY}`,
},
body: JSON.stringify({
request_path: requestPath,
request_method: requestMethod,
request_ip: requestIp,
request_headers: requestHeaders,
request_timestamp: Date.now()
}),
})
next()
}
app.use(analyticsMiddleware)