import { Router } from 'express' import { sqlite } from '../libs/db/init.js' const graphApi = Router() graphApi.get( '/points', (req, res) => { /* Check if a query was provided */ if (!req.query.q) { return res.json({ success: false, response: "No query ('host/path?q=query') provided!" }) } let player = req.query.q const finishes = sqlite.prepare( ` SELECT DISTINCT(a.map), a.timestamp, b.points FROM race AS a INNER JOIN maps AS b ON a.map = b.map WHERE a.NAME = ? AND a.map LIKE '%' GROUP BY a.map ORDER BY a.timestamp; `) let currentPoints = 0 let array = [] for (const finish of finishes.iterate(player)) { console.log(finish) currentPoints += finish.Points array.push({ t: new Date(finish.Timestamp), y: currentPoints }) } return res.json({ success: true, response: array, }) } ) graphApi.get( '/map', (req, res) => { /* Check if a query was provided */ if (!req.query.q) { return res.json({ success: false, response: "No query ('host/path?q=query') provided!" }) } let map = req.query.q const finishes = sqlite.prepare( ` SELECT * FROM race WHERE map = ? ORDER BY Timestamp; `) let currentFinish let currentBest = 0; let array = [] for (const record of finishes.iterate(map)) { currentFinish = record.Time if(currentFinish <= currentBest || currentBest == 0) { currentBest = currentFinish array.push({ player: record.Name, Time: record.Time, Date: new Date(record.Timestamp) }) } } return res.json({ success: true, response: array, }) } ) export default graphApi