push & pullStats und checkLogin

This commit is contained in:
Artem Didytschuk 2022-03-24 11:36:02 +01:00
parent 2c14b051df
commit d3a55e5278
2 changed files with 31 additions and 13 deletions

View File

@ -5,9 +5,17 @@ public class Query {
db = new DatabaseConnector("", 0, "wordle.db", "", "");
}
//TODO:
public Game pullRunngingGame(){
return null;
}
//TODO:
public void pushRunningGame(){}
/**
* Speichert die Daten des Users aus der Datenbank auf dem User-Objekt
*
*
* @param user
*/
public void pullStats(User user) {
@ -38,7 +46,7 @@ public class Query {
* @param user
*/
public void pushStats(User user) {
// TODO: Methode korrigieren (Update ist nicht auf den User beschränkt) und neue Tabelle lastGuesses berücksichtigen
// TODO: Testen und vllt korrigieren
db.executeStatement("UPDATE INTO Stats (current_streak," + " max_streak, " + "wins, " + "times_played, "
+ "won_on_1, " + "won_on_2, " + "won_on_3, " + "won_on_4, " + "won_on_5, " + "won_on_6, "
+ "last_day_WOTD_finished) " + "VALUES (" + Integer.toString(user.getCurrentStreak())
@ -46,24 +54,34 @@ public class Query {
+ Integer.toString(user.getTimesPlayed()) + Integer.toString(user.getWonInTurnIndex(0))
+ Integer.toString(user.getWonInTurnIndex(1)) + Integer.toString(user.getWonInTurnIndex(2))
+ Integer.toString(user.getWonInTurnIndex(3)) + Integer.toString(user.getWonInTurnIndex(4))
+ Integer.toString(user.getWonInTurnIndex(5)) + Integer.toString(user.getLastDayWOTDPlayed()) + ")");
+ Integer.toString(user.getWonInTurnIndex(5)) + Integer.toString(user.getLastDayWOTDPlayed()) + ")" +
"WHERE user_username LIKE \"" + user.getUsername()+"\"");
}
/**
* Überprüft ob es den Username und das Passwort in der Datenbank gibt und gibt
* den Erfolg als Boolean zurück
* <EFBFBD>berpr<EFBFBD>ft ob es den Username und das Passwort in der Datenbank gibt und gibt
* den Erfolg als Boolean zur<EFBFBD>ck
*
* @param username
* @param password
* @return Ein Boolean
* @return Boolean true = login erfolgreich false = login fehlgeschlagen
*/
public boolean checkLogin(String username, String password) {
// TODO: Methode fertigstellen
return true;
// TODO: testen und vllt korrigieren
db.executeStatement("SELECT username, passwort FROM user " +
"WHERE username LIKE \""+username+"\" " +
"AND passwort LIKE \""+password+"\"");
QueryResult r = db.getCurrentQueryResult();
System.out.println(r.getRowCount());
if(r.getRowCount()== 1){
return true;
} else {
return false;
}
}
/**
* Gibt ein Zufälliges Wort aus der Datenbank zurück
* Gibt ein Zuf<EFBFBD>lliges Wort aus der Datenbank zur<EFBFBD>ck
*
* @return Ein Word als String
*/
@ -73,7 +91,7 @@ public class Query {
}
/**
* Gibt das Wordle des Tages, welches aus der Datenbank stammt, zurück. Ergibt
* Gibt das Wordle des Tages, welches aus der Datenbank stammt, zur<EFBFBD>ck. Ergibt
* pro Tag immer das gleiche Wordle.
*
* @return Das Wort als String
@ -84,7 +102,7 @@ public class Query {
}
/**
* Prüft ob das Wort in der Datenbank vorhanden ist
* Pr<EFBFBD>ft ob das Wort in der Datenbank vorhanden ist
*
* @param word ,ein String mit dem Wort
* @return Boolean

View File

@ -65,11 +65,11 @@ public class WordleServer extends Server {
case 1:
// Anmeldephase
if (m.equalsIgnoreCase("USER")) {
m = pMessage.substring(5, pMessage.length() - 1);
m = pMessage.substring(5, pMessage.length());
u.setUsername(m);
send(pClientIP, pClientPort, "+OK");
} else if (m.equalsIgnoreCase("PASS")) {
m = pMessage.substring(5, pMessage.length() - 1);
m = pMessage.substring(5, pMessage.length());
u.setPassword(m);
if (u.getPassword() != null && u.getUsername() != null) {
if (query.checkLogin(u.getUsername(), u.getPassword())) {