Files
2026-07-15 18:37:19 +09:00

76 lines
2.9 KiB
Python

import mysql.connector
from database.connection import get_db_connection
import logging
# 모든 설정 조회
def get_all_settings():
settings = []
try:
with get_db_connection() as conn:
with conn.cursor(dictionary=True) as cursor:
cursor.execute("SELECT `id`, `setting_group`, `setting_key`, `setting_value`, `setting_type`, `description` FROM settings")
results = cursor.fetchall()
for row in results:
settings.append({
"id": row['id'],
"setting_group": row['setting_group'],
"setting_key": row['setting_key'],
"setting_value": row['setting_value'],
"setting_type": row['setting_type'],
"description": row['description']
})
return settings
except mysql.connector.Error as err:
logging.error(f"Error getting all settings: {err}")
return []
# 특정 설정 조회
def get_setting(key):
try:
with get_db_connection() as conn:
with conn.cursor(dictionary=True) as cursor:
cursor.execute("SELECT `setting_value`, `setting_type` FROM settings WHERE `setting_key` = %s", (key,))
result = cursor.fetchone()
if result:
value = result['setting_value']
value_type = result['setting_type']
if value_type == 'integer':
return int(value)
elif value_type == 'decimal':
return float(value)
elif value_type == 'boolean':
return value.lower() in ('true', '1', 't')
else:
return value
return None
except mysql.connector.Error as err:
logging.error(f"Error getting setting for key {key}: {err}")
return None
# 설정 업데이트
def update_settings(settings_data):
try:
with get_db_connection() as conn:
with conn.cursor() as cursor:
sql = """
UPDATE settings
SET `setting_value` = %s
WHERE `setting_key` = %s
"""
values_to_update = []
for setting in settings_data:
key = setting.get('setting_key')
value = setting.get('setting_value')
if key is not None and value is not None:
values_to_update.append((str(value), key))
if values_to_update:
cursor.executemany(sql, values_to_update)
conn.commit()
return True
except mysql.connector.Error as err:
logging.error(f"Error updating settings: {err}")
return False