added Serializer & Manager classes

This commit is contained in:
j-weissen 2022-12-14 00:10:02 +01:00
parent d76110d06b
commit 2219ea93bf
24 changed files with 254 additions and 111 deletions

View file

@ -0,0 +1,23 @@
import express from 'express';
import {Database} from "./Database.js";
import {TimeLeaderboardManager} from "./manager/TimeLeaderboardManager.js";
import {HighscoreLeaderboardManager} from "./manager/HighscoreLeaderboardManager.js";
import {
HighscoreLeaderboardPgPromiseSerializer
} from "./serializer/pgpromise/HighscoreLeaderboardPgPromiseSerializer.js";
import {TimeLeaderboardPgPromiseSerializer} from "./serializer/pgpromise/TimeLeaderboardPgPromiseSerializer.js";
export const leaderboardRoute = express.Router()
leaderboardRoute.get('/highscore', async (req, res) => {
let data = await Database.db.manyOrNone('SELECT * FROM lb_highscore INNER JOIN "user" ON user_id = id ORDER BY RANK;')
const leaderboardManager = new HighscoreLeaderboardManager(data, new HighscoreLeaderboardPgPromiseSerializer);
res.send(leaderboardManager.content)
})
leaderboardRoute.get('/totalplaytime', async (req, res) => {
let data = await Database.db.manyOrNone('SELECT * FROM lb_total_playtime INNER JOIN "user" ON user_id = id ORDER BY RANK;')
const leaderboardManager = new TimeLeaderboardManager(data, new TimeLeaderboardPgPromiseSerializer);
res.send(leaderboardManager.content)
})