import sqlite3 from sqlite3 import Error from utils import validate_sql import logging class Database: def __init__(self, db_path='data/database.sqlite'): self.db_path = db_path def execute_query(self, query): logging.info(f"Executing SQL: {query}") if not validate_sql(query): return {"error": "Invalid SQL query. Only SELECT queries are allowed at this point."} try: conn = sqlite3.connect(self.db_path) cursor = conn.cursor() cursor.execute(query) results = cursor.fetchall() columns = [desc[0] for desc in cursor.description] conn.close() return {"columns": columns, "data": results} except Error as e: logging.error(f"SQL Error: {str(e)}") return {"error": str(e)}