Bot_Development / db /get_data.py
dsmultimedika's picture
Improve the code bot development
d57efd6
raw
history blame
2.33 kB
import logging
from db.repository import Repository, get_db_conn
from fastapi.responses import JSONResponse
# Setup logging (configure as needed)
logging.basicConfig(level=logging.INFO)
class GetDatabase(Repository):
async def execute_query(self, query, params=None, fetch_one=False):
"""
Helper function to execute SQL queries and handle exceptions.
"""
try:
print(fetch_one)
if fetch_one:
results = await self._fetch_one(query, params)
print(results)
else:
results = await self.get_by_query(query, params)
print("result execute query : ", results)
return results if results else None
except Exception as e:
logging.error(f"An error occurred while executing query: {e}")
return JSONResponse(status_code=500, content=f"An error occurred while executing query: {e}")
async def get_data(self, title):
"""
Fetch the first result matching the given title from the metadata table.
"""
query = """
SELECT * FROM metadata
WHERE title = %s
limit 5;
"""
try:
results = await self.execute_query(query, (title,), fetch_one=True)
return results
except Exception as e:
logging.error(f"An error occurred while get data: {e}")
return JSONResponse(status_code=500, content=f"An error occurred while get data: {e}")
async def get_all_data(self):
"""
Fetch all data from the metadata table.
"""
query = """
SELECT * FROM metadata
"""
results = await self.execute_query(query)
print("result", results)
return results
async def get_data_by_id(self, id):
query = f"""
SELECT * FROM metadata WHERE id = :id
"""
param = {"id" : id}
try:
results = await self.execute_query(query, param)
print('Query successful, results: %s', results)
return results[0] if results else None
except Exception as e:
print('Error fetching data by ID %s: %s', id, e)
return JSONResponse(status_code=500, content=f"An error while fething data: {e}")