1
Fork 0
mirror of https://github.com/wlinator/luminara.git synced 2024-10-03 02:43:12 +00:00
Lumi/db/database.py

71 lines
1.5 KiB
Python
Raw Normal View History

2023-07-02 12:20:16 +00:00
import logging
2023-10-23 12:49:46 +00:00
import mysql.connector
from dotenv import load_dotenv
import os
2023-06-19 14:20:17 +00:00
2024-02-28 13:01:20 +00:00
logs = logging.getLogger('Racu.Core')
2023-10-23 12:49:46 +00:00
load_dotenv('.env')
2023-07-02 12:20:16 +00:00
2023-06-19 14:20:17 +00:00
2023-10-23 12:49:46 +00:00
cnxpool = mysql.connector.pooling.MySQLConnectionPool(
pool_name='core-pool',
pool_size=25,
host='db',
user=os.getenv("MARIADB_USER"),
password=os.getenv("MARIADB_PASSWORD"),
database='racudb'
)
2023-06-19 14:20:17 +00:00
def execute_query(query, values=None):
2023-10-23 12:49:46 +00:00
conn = cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2023-06-21 13:43:11 +00:00
if values:
cursor.execute(query, values)
else:
cursor.execute(query)
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
conn.commit()
2023-10-23 12:49:46 +00:00
conn.close()
2024-02-28 13:01:20 +00:00
logs.debug(f"database.execute_query: 'query': {query}, 'values': {values}")
2023-06-19 14:20:17 +00:00
return cursor
def select_query(query, values=None):
2023-10-23 12:49:46 +00:00
conn = cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2024-02-28 13:01:20 +00:00
logs.debug(f"database.select_query: 'query': {query}, 'values': {values}")
2023-07-02 13:50:21 +00:00
2023-06-21 13:43:11 +00:00
if values:
2023-10-23 12:49:46 +00:00
cursor.execute(query, values)
output = cursor.fetchall()
2023-06-21 13:43:11 +00:00
else:
2023-10-23 12:49:46 +00:00
cursor.execute(query)
output = cursor.fetchall()
conn.close()
return output
2023-06-19 14:20:17 +00:00
def select_query_one(query, values=None):
2023-10-23 12:49:46 +00:00
conn = cnxpool.get_connection()
2023-06-19 14:20:17 +00:00
cursor = conn.cursor()
2024-02-28 13:01:20 +00:00
logs.debug(f"database.select_query_one: 'query': {query}, 'values': {values}")
2023-07-02 13:50:21 +00:00
2023-06-21 13:43:11 +00:00
if values:
2023-10-23 12:49:46 +00:00
cursor.execute(query, values)
output = cursor.fetchone()
2023-06-21 13:43:11 +00:00
else:
2023-10-23 12:49:46 +00:00
cursor.execute(query)
output = cursor.fetchone()
conn.close()
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
if output:
return output[0]
2023-06-19 14:20:17 +00:00
2023-06-21 13:43:11 +00:00
return None