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
|