added Model classes

This commit is contained in:
j-weissen 2022-12-12 11:35:53 +01:00
parent fd257b335c
commit 6e8e0e0101
14 changed files with 145 additions and 33 deletions

View file

@ -1,9 +1,13 @@
import express from 'express';
import {Database} from "./Database.js";
import pgPromise from "pg-promise";
import helmet from "helmet";
import bodyParser from "body-parser";
import morgan from 'morgan';
import {UserDataManager} from "./manager/UserDataManager.js";
import {UserDataPgPromiseSerializer} from "./manager/UserDataPgPromiseSerializer.js";
import {leaderboardRouter} from "./leaderboardRouter.js";
const app = express()
const port = 3000
@ -14,30 +18,31 @@ app.use(helmet())
let morganFormatted = morgan('[:date[iso]] :method :url - :status')
app.use(morganFormatted);
// init database connection
const pgp = pgPromise({});
const db = pgp('postgres://postgres:postgres@db:5432/rr')
app.use('/leaderboard', leaderboardRouter)
app.get('/helloworld', (req, res) => {
res.json({message: "Hello World!"})
})
app.get('/highscore', async (req, res) => {
let data = await dbQueryCatcher(async () =>
await db.manyOrNone('SELECT * FROM lb_highscore;')
)
let data = await Database.db.manyOrNone('SELECT * FROM lb_highscore;')
.catch((error) => console.log(error.message))
res.json(data)
})
async function dbQueryCatcher(request): Promise<any> {
let data;
try {
data = await request();
} catch (e) {
console.log((e as Error).message)
}
return data;
}
app.get('/user/:username', async (req, res) => {
let data = await Database.db.oneOrNone(
'SELECT * FROM user_data WHERE username = $1;',
[req.params.username])
.catch((error) => console.log(error.message)
)
let userDataManager: UserDataManager = new UserDataManager(data, new UserDataPgPromiseSerializer);
res.json(userDataManager.userData);
})
app.listen(port, () => {
console.log(`Server started at http://localhost:3000`);