Bestenliste und Scores gespeichert und beim Ende eines Spiel Rang anzeige
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
const mySql = require("mysql2");
|
||||
const UserManager = require("./UserManager/UserManager");
|
||||
const ScoreManager = require("./ScoreManager/ScoreManager");
|
||||
require("dotenv").config();
|
||||
|
||||
class DataBaseManager {
|
||||
@@ -20,6 +21,7 @@ class DataBaseManager {
|
||||
});
|
||||
|
||||
this.usermanager = new UserManager(this.connection);
|
||||
this.scoremanager = new ScoreManager(this.connection);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
class Score{
|
||||
/** @param {UserManager} usermanager */
|
||||
constructor(scoreJson){
|
||||
this.id = scoreJson.id;
|
||||
this.user1ID = scoreJson.user1;
|
||||
this.user2ID = scoreJson.user2;
|
||||
this.score = scoreJson.score;
|
||||
this.time = new Date(scoreJson.time);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = Score;
|
||||
@@ -0,0 +1,44 @@
|
||||
const mySql = require("mysql2");
|
||||
const Score = require("./Score");
|
||||
|
||||
class ScoreManager{
|
||||
/**@param {mySql.Connection} connection*/
|
||||
constructor(connection) {
|
||||
this.connection = connection;
|
||||
}
|
||||
|
||||
async getAllScores(){
|
||||
const response = await this.connection.promise().query("SELECT * FROM scores ORDER BY score DESC");
|
||||
const sortedScores = response[0].map(scoreData => new Score(scoreData));
|
||||
|
||||
return sortedScores;
|
||||
}
|
||||
|
||||
async createScore(newScoreJson){
|
||||
const sql = `INSERT INTO scores (user1, user2, score) VALUES (
|
||||
${newScoreJson.user1}, ${newScoreJson.user2}, ${newScoreJson.score})`;
|
||||
|
||||
const insertResult = await this.connection.promise().query(sql);
|
||||
const insertId = insertResult[0].insertId;
|
||||
|
||||
const selectSql = `SELECT * FROM scores WHERE id = ${insertId}`;
|
||||
const selectResult = await this.connection.promise().query(selectSql);
|
||||
|
||||
return new Score(selectResult[0][0]);
|
||||
}
|
||||
|
||||
async getScoreById(id){
|
||||
const response = await this.connection.promise().query(`SELECT * FROM scores WHERE id = ${id}`);
|
||||
return new Score(response.rows[0][0]);
|
||||
}
|
||||
|
||||
async getScoreRang(id){
|
||||
const allSortetScores = await this.getAllScores();
|
||||
|
||||
const score = allSortetScores.find(score => score.id === id);
|
||||
|
||||
return allSortetScores.indexOf(score) + 1;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = ScoreManager;
|
||||
Reference in New Issue
Block a user