From 109cfbaba559a6019e696fa4bc07900b1d714340 Mon Sep 17 00:00:00 2001 From: J-onasJones Date: Sun, 18 Aug 2024 05:47:57 +0200 Subject: [PATCH] added analytics tracking --- src/index.js | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 31d5aea..b98d44d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,5 @@ addEventListener('fetch', event => { - event.respondWith(handleRequest(event.request, event.env)); + event.respondWith(handleRequest(event)); }); const headersCORS = { @@ -8,7 +8,36 @@ const headersCORS = { 'Access-Control-Allow-Headers': 'Content-Type, x-Custom-Auth-Key', }; - async function handleRequest(request, env) { +async function recordRequest(request) { + + const analyticsData = { + timestamp: Date.now(), + domain: new URL(request.url).hostname, + method: request.method, + path: new URL(request.url).pathname, + ipcountry: request.cf.country, + } + const ANALYTICS_URL = 'https://analytics.jonasjones.dev/requests/record'; + + const response = await fetch(ANALYTICS_URL, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': ANALYTICS_API_KEY, + }, + body: JSON.stringify(analyticsData) + }); + + if (response.ok) { + console.log('Request recorded successfully'); + } else { + console.error('Failed to record request:', response.status, await response.text()); + } +} + + async function handleRequest(event) { + event.waitUntil(recordRequest(event.request)); + const request = event.request; const url = new URL(request.url); if (request.method === 'OPTIONS') {