exports.handler = async (event) => {
const request = event.Records[0].cf.request;
const headers = request.headers;
const requestPath = request.uri + (request.querystring ? '?' + request.querystring : '');
const requestMethod = request.method;
const requestIp = headers['cloudfront-viewer-address']
? headers['cloudfront-viewer-address'][0].value.split(':')[0]
: '127.0.0.1';
const requestHeaders = {
'User-Agent': headers['user-agent'] ? headers['user-agent'][0].value : '',
'Host': headers['host'] ? headers['host'][0].value : '',
'Referer': headers['referer'] ? headers['referer'][0].value : '',
};
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(),
}),
});
return request;
};