import { fileURLToPath } from "url"; import { connection } from "./index.js"; // Create the connection to database // get data for users between 2 dates async function getTopTen() { let filteredResults; let startDate = "2021-01-01"; let endDate = "2029-01-01"; if (req.query.to) startDate = req.query.to; if (req.query.from) startDate = req.query.from; try { const [results, fields] = await connection.query( "SELECT t.user,t.time,t.date,t.project \ FROM Timelog t\ WHERE t.date BETWEEN ? AND ? ;", [startDate, endDate], ); filteredResults = results; console.log(filteredResults); } catch (err) { console.log(err); } if (req.query.filterBy) filterBy = req.query.filterBy; // how much time each user has logged during that time period if (filterBy === "user") { let users = {}; for (let i = 0; i < filteredResults.length; i++) { if (filteredResults[i].user in users) { users[filteredResults[i].user] += filteredResults[i].time; } else { users[filteredResults[i].user] = filteredResults[i].time; } } // Create items array let items = Object.keys(users).map(function (key) { return [key, users[key]]; }); // Sort the array based on the second element items.sort(function (first, second) { return second[1] - first[1]; }); // Create a new array with only the first 10 items return items.slice(0, 10); } } export { getTopTen }; // SELECT u.f_name,u.l_name,u.mail,p.name,t.time,t.date // FROM Timelog t // INNER JOIN Project p ON p.id=t.project // INNER JOIN User u ON u.id=t.user // WHERE User = "100"; // ORDER BY time // LIMIT 10 OFFSET 10