def getHand(idPlayer, idGame): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "SELECT * FROM hands WHERE idusers=%s AND idgame = %s RETURNING listcard", (idPlayer, idGame)) resultats = curseur.fetchall() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return (resultats)
def deleteUserAccount(username): """ Ajoute le nouveau compte à la base de données """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("DELETE FROM users WHERE username = %s", ((username), )) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def saveMiddleGame(data, idGame, nomJeu): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() if nomJeu == 'Belote': insert_statement = """UPDATE Belote SET handlist = %s,score1 = %s,score2 = %s,atout= %s,maitre= %s,teamprenant= %s,finished= %s WHERE idGame = %s""" try: curseur.execute(insert_statement, (data['handlist'], data['scoreTeam1'], data['scoreTeam2'], data['atout'], data['maitre'], data['teamPrenant'], data['finished'], idGame)) connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def savehandinDataBase(hand): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "UPDATE hands SET listcard = %s WHERE idhands = %s", (hand.card_list, hand.idHand)) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def getAllGameData(): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("SELECT * FROM games") connexion.commit() games = curseur.fetchall() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return (games)
def getAccountDataBelote(id_users): """ Renvoie les scores """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( """SELECT * FROM games g INNER JOIN belote b ON (g.idGame = b.idGame) WHERE position(b.players in %s) >0 """, (id_users[0][1], )) ans = curseur.fetchall() connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return (ans)
def getUsers(): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("SELECT * FROM Users;") users = curseur.fetchall() connexion.commit() print(users) except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def backupAccount(): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute(""" SELECT * FROM users u WHERE u.admini = TRUE """) users = curseur.fetchall() connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return users
def savePileinDataBase(pile): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "UPDATE Piles SET card1 = %s, card2 = %s, card3 = %s, card4 = %s WHERE idPile = %s", (str(pile.card_list[0]), str(pile.card_list[1]), str(pile.card_list[2]), str(pile.card_list[3]), pile.idPile)) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def getPile(idPile): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "SELECT card1, card2, card3, card4 FROM Piles WHERE idPile=%s", (idPile, )) resultats = curseur.fetchall() PreviousPiles = [] for resultat in resultats: PreviousPiles.append(Card.toCards(resultat)) finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return (PreviousPiles)
def getBackGame(idGame, nomJeu): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: if nomJeu == 'Belote': curseur.execute("SELECT * FROM Belote WHERE idGame = %s", (nomJeu, idGame)) data = curseur.fetchall() if data is not None: data = data[0] connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return (data)
def getIDwithPlayers(idPlayers, nomJeu): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: if nomJeu == 'Belote': curseur.execute( "SELECT * FROM Belote WHERE players = %s RETURNING idGame", (idPlayers, )) idJeu = curseur.fetchone() connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return idJeu
def updatePassword(username, hashmdp, newmdp): """ Met à jour dans la base de données le mot de passe qui vient d'être modifié""" connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "UPDATE users SET mdp = %s WHERE mdp = %s and username = %s RETURNING username", (newmdp, hashmdp, username)) connexion.commit() rep = curseur.fetchone() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return rep
def checkAccounttoData(username, mdpa): """Création de l'instance de l'objet utilisateur """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( """ SELECT * FROM users u WHERE u.username = %s AND u.mdp = %s """, (username, str(mdpa))) id_user = curseur.fetchall() connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return id_user
def newPile(idjeu): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("INSERT INTO Piles (idGame)" "VALUES (%s) RETURNING idPile ", (idjeu, ) #On récupère l'id de la pile ) idPile = curseur.fetchone()[0] connexion.commit() except psycopg2.Error as error: # la transaction est annulée connexion.rollback() raise error finally: curseur.close() DatabaseConnection.putBackConnexion(connexion) return idPile
def addAccounttoData(name, mdp, admini=False): """ Ajoute le nouveau compte à la base de données """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "INSERT INTO users (username,mdp,admini,connected) " "VALUES (%s,%s, %s,%s) RETURNING username;", ((name, ), (mdp, ), (admini, ), False)) user = curseur.fetchone()[0] connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return user
def delete(idPile): deleted = False connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("DELETE FROM Piles WHERE idPile=%s", (idPile, )) if curseur.rowcount > 0: deleted = True connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close() DatabaseConnection.putBackConnexion(connexion) return deleted
def newHand(idjeu, idUsers): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("""INSERT INTO hands (idgame,idusers) VALUES (%s,%s) RETURNING hands.idhands """, (int(idjeu), idUsers) # On récupère l'id de la hand ) idHand = curseur.fetchone()[0] connexion.commit() except psycopg2.Error as error: # la transaction est annulée connexion.rollback() raise error finally: curseur.close() DatabaseConnection.putBackConnexion(connexion) return idHand
def verif_init_id(username): """ On vérifie que l'identifiant choisi n'existe pas déjà dans la base de données Args : username (str) : Nom d'utilisateur souhaité par le joueur """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "SELECT * from users WHERE username = %s ; ", ((username),)) answer = curseur.fetchone() connexion.commit() finally: curseur.close DatabaseConnection.putBackConnexion(connexion) if answer is None: return True else: return False
def initDatabase(): connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: users = AdminDAO.backupAccount() curseur.execute( open("Code/app/features/DAO/SQL/tableCreation.sql", "r").read()) for user in users: curseur.execute( """ INSERT INTO users (username,mdp,admini,connected) VALUES (%s,%s, %s,%s) """, (user[1], user[2], True, False)) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def updateAccountCredentials(playerID, score_game): """ Met à jour les scores dans la base de données """ # Mettre le code qui récupère le score dans un objet previous_score. connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute("SELECT score from users WHERE id_users= %s", playerID) previous_score = curseur.fetchone[0] new_score = previous_score + score_game curseur.execute("UPDATE users SET score = %s WHERE id_users= %s", (new_score, playerID)) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion)
def addGame(nomJeu, listString): """ Ajoute une partie prête à commencer dans la base de données """ connexion = DatabaseConnection.getConnexion() curseur = connexion.cursor() try: curseur.execute( "INSERT INTO Games (jeu,idPlayers) VALUES (%s,%s) RETURNING idGame;", (nomJeu, listString)) idJeu = curseur.fetchall() if nomJeu == 'Belote': curseur.execute( "INSERT INTO Belote (players,finished,idgame) VALUES (%s,%s,%s)", (listString, False, idJeu[0])) connexion.commit() except psycopg2.Error as error: connexion.rollback() raise error finally: curseur.close DatabaseConnection.putBackConnexion(connexion) return idJeu
def test_getConnexion(self): # GIVEN connexion = DatabaseConnection.getConnexion() # THEN self.assertIsNotNone(connexion)