Spaces:
Sleeping
Sleeping
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}") |