export default {
async fetch(request, env, ctx) {
const url = new URL(request.url)
const requestPath = url.pathname + url.search
const requestMethod = request.method
const requestIp = request.headers.get('cf-connecting-ip') || '127.0.0.1'
const requestHeaders = {
'User-Agent': request.headers.get('user-agent'),
'Host': request.headers.get('host'),
'Referer': request.headers.get('referer'),
}
ctx.waitUntil(
fetch('https://analytics.usehall.com/visit', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${env.HALL_API_KEY}`,
},
body: JSON.stringify({
request_path: requestPath,
request_method: requestMethod,
request_ip: requestIp,
request_headers: requestHeaders,
request_timestamp: Date.now()
}),
})
)
return fetch(request)
},
}