mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-06 17:15:38 -08:00
Merge pull request #1167 from ingoratsdorf/db-work
DB result iteration fix on empty result
This commit is contained in:
@@ -6,7 +6,8 @@ INSTALL_PATH="/app"
|
||||
sys.path.extend([f"{INSTALL_PATH}/server"])
|
||||
|
||||
from helper import if_byte_then_to_str
|
||||
from logger import mylog
|
||||
from logger import mylog
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Return the SQL WHERE clause for filtering devices based on their status.
|
||||
@@ -41,7 +42,6 @@ def get_device_condition_by_status(device_status):
|
||||
return conditions.get(device_status, 'WHERE 1=0')
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
# Creates a JSON-like dictionary from a database row
|
||||
def row_to_json(names, row):
|
||||
@@ -71,6 +71,7 @@ def row_to_json(names, row):
|
||||
|
||||
return rowEntry
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
def sanitize_SQL_input(val):
|
||||
"""
|
||||
@@ -116,7 +117,6 @@ def get_date_from_period(period):
|
||||
return period_sql
|
||||
|
||||
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
def print_table_schema(db, table):
|
||||
"""
|
||||
@@ -193,15 +193,21 @@ def get_table_json(sql, sql_query):
|
||||
"""
|
||||
try:
|
||||
sql.execute(sql_query)
|
||||
column_names = [col[0] for col in sql.description]
|
||||
rows = sql.fetchall()
|
||||
if (rows):
|
||||
# We only return data if we actually got some out of SQLite
|
||||
column_names = [col[0] for col in sql.description]
|
||||
data = [row_to_json(column_names, row) for row in rows]
|
||||
return json_obj({"data": data}, column_names)
|
||||
except sqlite3.Error as e:
|
||||
# SQLite error, e.g. malformed query
|
||||
mylog('verbose', ['[Database] - SQL ERROR: ', e])
|
||||
return json_obj({}, []) # return empty object
|
||||
|
||||
result = {"data": [row_to_json(column_names, row) for row in rows]}
|
||||
return json_obj(result, column_names)
|
||||
|
||||
except Exception as e:
|
||||
# Catch-all for other exceptions, e.g. iteration error
|
||||
mylog('verbose', ['[Database] - Unexpected ERROR: ', e])
|
||||
|
||||
# In case of any error or no data, return empty object
|
||||
return json_obj({"data": []}, [])
|
||||
|
||||
#-------------------------------------------------------------------------------
|
||||
class json_obj:
|
||||
|
||||
Reference in New Issue
Block a user