107 lines
3.3 KiB
Python
107 lines
3.3 KiB
Python
import mariadb
|
|
import logging
|
|
|
|
|
|
#Logging
|
|
|
|
logging.basicConfig(
|
|
filename='app.log', # Log to a file
|
|
level=logging.DEBUG, # Log everything (DEBUG and above)
|
|
format='%(asctime)s %(levelname)s %(message)s'
|
|
)
|
|
|
|
logging.info('Application started')
|
|
try:
|
|
logging.debug('Debug info here')
|
|
except Exception as e:
|
|
logging.exception('An error occurred')
|
|
|
|
|
|
def connect(db_user, db_psswd, db_host, db_port, db_name):
|
|
try:
|
|
global connection
|
|
connection = mariadb.connect(user=db_user,
|
|
password=db_psswd,
|
|
host=db_host,
|
|
port=db_port,
|
|
database=db_name)
|
|
print("Connected to MariaDB successfully!")
|
|
logging.info("Connected to MariaDB successfully!")
|
|
|
|
except mariadb.Error as e:
|
|
print(f"Error connecting to DB: {e}")
|
|
logging.error("Error connecting")
|
|
logging.debug(f"Error connecting to DB: {e}")
|
|
|
|
def new_part(cloth_type, weigth, pieces):
|
|
if type(pieces) is not int:
|
|
print("only ints allowed")
|
|
logging.error("only ints allowed")
|
|
else:
|
|
cursor = connection.cursor()
|
|
executed = "INSERT INTO luggage (clothes, weigth, pieces) VALUES (?, ?, ?)"
|
|
executed_data = (cloth_type, weigth, pieces)
|
|
cursor.execute(executed, executed_data)
|
|
connection.commit()
|
|
logging.info("new Insert is in DB")
|
|
|
|
def fetch_clothes():
|
|
cursor = connection.cursor()
|
|
cursor.execute("SELECT clothes FROM luggage")
|
|
clothes = [str(row[0]) for row in cursor.fetchall()]
|
|
logging.info("fetched clothes")
|
|
return clothes
|
|
|
|
def update_weigth(cloth_type, weigth):
|
|
cursor = connection.cursor()
|
|
executed = "UPDATE luggage SET weigth = ? WHERE clothes = ?"
|
|
executed_data = (weigth, cloth_type)
|
|
cursor.execute(executed, executed_data)
|
|
connection.commit()
|
|
logging.info("weigth updated")
|
|
|
|
def update_pieces(cloth_type, pieces):
|
|
if type(pieces) is not int:
|
|
logging.error("only ints allowed")
|
|
else:
|
|
cursor = connection.cursor()
|
|
executed = "UPDATE luggage SET pieces = ? WHERE clothes = ?"
|
|
executed_data = (pieces, cloth_type)
|
|
cursor.execute(executed, executed_data)
|
|
connection.commit()
|
|
logging.info("pieces updated")
|
|
|
|
def fetch_weigth(cloth_type):
|
|
cursor = connection.cursor()
|
|
cursor.execute("SELECT weigth FROM luggage WHERE clothes = ?", (cloth_type,))
|
|
weigth = cursor.fetchone()[0]
|
|
logging.info("fetched weigth")
|
|
return weigth
|
|
|
|
def fetch_luggage_weigth():
|
|
cursor = connection.cursor()
|
|
cursor.execute("SELECT sum(weigth) FROM luggage")
|
|
weigth = cursor.fetchone()[0]
|
|
logging.info("fetched luggage weigth")
|
|
return weigth
|
|
|
|
def fetch_piece(cloth_type):
|
|
cursor = connection.cursor()
|
|
cursor.execute("SELECT pieces FROM luggage WHERE clothes = ?", (cloth_type,))
|
|
pieces = cursor.fetchone()[0]
|
|
logging.info("fetched luggage pieces")
|
|
return pieces
|
|
|
|
def fetch_all_pieces():
|
|
cursor = connection.cursor()
|
|
cursor.execute("SELECT sum(pieces) FROM luggage")
|
|
pieces = cursor.fetchone()[0]
|
|
logging.info("fetched all luggage pieces")
|
|
return pieces
|
|
|
|
def delete(cloth_type):
|
|
cursor = connection.cursor()
|
|
cursor.execute("DELETE FROM luggage WHERE clothes = ?;", (cloth_type,))
|
|
logging.critical(f"{cloth_type} was deleted")
|
|
connection.commit()
|