summaryrefslogtreecommitdiff
path: root/src/database/dbmain.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/database/dbmain.py')
-rw-r--r--src/database/dbmain.py71
1 files changed, 45 insertions, 26 deletions
diff --git a/src/database/dbmain.py b/src/database/dbmain.py
index 602cec6..1dbb301 100644
--- a/src/database/dbmain.py
+++ b/src/database/dbmain.py
@@ -6,8 +6,10 @@
# #
############################################################################
+from types import NoneType
import mysql.connector
from passlib.hash import sha512_crypt
+from PyQt5.QtWidgets import QMessageBox
# const si CAPS
# https://www.w3schools.com/python/python_mysql_getstarted.asp
@@ -142,37 +144,18 @@ class DbMain():
# ****************************************************************************
# FONCTIONS PRINCIPALES
# ****************************************************************************
- # Constructeur, fonction "auto" déclenchée à l'instanciation
- def __init__(self):
- if self.DEBUG:
- self.conn = mysql.connector.connect(
- host=self.HOST,
- user=self.USER,
- password=self.PASSWORD,
- database=self.DATABASE,
- raise_on_warnings=self.DEBUG
- )
- else:
- self.conn = mysql.connector.connect(
- host=self.HOST,
- user=self.USER,
- password=self.PASSWORD,
- database=self.DATABASE
- )
- self.cur = self.conn.cursor()
-
# Création de la DB si elle n'existe pas
- def create_db(self):
+ def create_db(self) -> None:
reqInitDb = "CREATE DATABASE IF NOT EXISTS " + self.DATABASE
self.cur.execute(reqInitDb)
# Sélection de la DB
- def select_db(self):
+ def select_db(self) -> None:
reqSelectDb = "USE " + self.DATABASE
self.cur.execute(reqSelectDb)
# Création des tables si elles n'existent pas
- def create_table(self):
+ def create_table(self) -> None:
# userAccount
reqInitUserAccount = self.CREATETABLEUSERACCOUNT
self.cur.execute(reqInitUserAccount)
@@ -190,28 +173,64 @@ class DbMain():
self.cur.execute(reqInitMission)
# Déclenche les méthodes pour créer la BDD
- def init(self):
+ def init(self) -> None:
self.create_db()
self.select_db()
self.create_table()
# Chiffre la data reçue
- def crypt_pass(self, password):
+ def crypt_pass(self, password: str) -> str:
return sha512_crypt.hash(password, rounds=10000)
# Prépare la requète pour mitiger (se protéger) les injections SQL et
# initialise si nécessaire la BDD à chaque requète
- def exec_cmd(self, req, arg=None):
+ def exec_cmd(self, req: str, arg: list = None, commit: bool = False) -> None:
self.init()
if arg:
self.cur.execute(req, arg)
+ if commit:
+ self.conn.commit()
else:
self.cur.execute(req)
# Vérifie si l'email existe dans la table userAccount de la BDD
- def check_exist_email(self, email):
+ def check_exist_email(self, email: str) -> int:
reqCheckEmailExist = "SELECT EXISTS(SELECT * FROM " + \
self.TABLEUSERACCOUNT + " WHERE email = %s)"
self.exec_cmd(reqCheckEmailExist, [email])
# Retourne 1 si existe, sinon 0
return self.cur.fetchall()[0][0]
+
+ # Constructeur, fonction "auto" déclenchée à l'instanciation
+ def __init__(self, mainWindow) -> None:
+ try:
+ if self.DEBUG:
+ self.conn = mysql.connector.connect(
+ host=self.HOST,
+ user=self.USER,
+ password=self.PASSWORD,
+ database=self.DATABASE,
+ raise_on_warnings=self.DEBUG
+ )
+ else:
+ self.conn = mysql.connector.connect(
+ host=self.HOST,
+ user=self.USER,
+ password=self.PASSWORD,
+ database=self.DATABASE
+ )
+ self.cur = self.conn.cursor()
+ except mysql.connector.errors.DatabaseError as e:
+ if self.DEBUG:
+ QMessageBox.warning(
+ mainWindow,
+ "Erreur avec la BDD",
+ str(e)
+ )
+ else:
+ QMessageBox.warning(
+ mainWindow,
+ "Erreur avec la BDD",
+ "Veuillez vérifier si la BDD est accessible."
+ )
+ exit(1)