예제 #1
0
    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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
 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)
예제 #5
0
 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)
예제 #6
0
 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)
예제 #7
0
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)
예제 #8
0
 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
예제 #9
0
 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)
예제 #10
0
    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)
예제 #11
0
    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)
예제 #12
0
 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
예제 #13
0
 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
예제 #14
0
 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
예제 #15
0
 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
예제 #16
0
 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
예제 #17
0
파일: id.py 프로젝트: MailineN/ProjetInfo2A
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
예제 #18
0
 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
예제 #19
0
    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
예제 #20
0
 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)
예제 #21
0
    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)
예제 #22
0
 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_getInstance(self):
        # GIVEN
        reservoir_connexion = DatabaseConnection.getInstance()

        # THEN
        self.assertIsNotNone(reservoir_connexion)
    def test_getConnexion(self):
        # GIVEN
        connexion = DatabaseConnection.getConnexion()

        # THEN
        self.assertIsNotNone(connexion)