dict-fix
Some checks failed
Deploy on push / deploy (push) Failing after 9s

This commit is contained in:
Untone 2024-08-07 10:30:51 +03:00
parent 1af63dee81
commit 7c48a6a1dc

View File

@ -54,22 +54,25 @@ class Base(declarative_base()):
def dict(self) -> Dict[str, Any]: def dict(self) -> Dict[str, Any]:
column_names = filter(lambda x: x not in FILTERED_FIELDS, self.__table__.columns.keys()) column_names = filter(lambda x: x not in FILTERED_FIELDS, self.__table__.columns.keys())
data = {}
try: try:
data = {} for column_name in column_names:
for c in column_names: value = getattr(self, column_name)
value = getattr(self, c) # Check if the value is JSON and decode it if necessary
if isinstance(value, JSON): if isinstance(value, (str, bytes)) and isinstance(self.__table__.columns[column_name].type, JSON):
# save JSON column as dict try:
data[c] = json.loads(str(value)) data[column_name] = json.loads(value)
except (TypeError, json.JSONDecodeError) as e:
logger.error(f"Error decoding JSON for column '{column_name}': {e}")
data[column_name] = value
else: else:
data[c] = value data[column_name] = value
# Add synthetic field .stat # Add synthetic field .stat if it exists
if hasattr(self, "stat"): if hasattr(self, "stat"):
data["stat"] = self.stat data["stat"] = self.stat
return data
except Exception as e: except Exception as e:
logger.error(f"Error occurred while converting object to dictionary: {e}") logger.error(f"Error occurred while converting object to dictionary: {e}")
return {} return data
def update(self, values: Dict[str, Any]) -> None: def update(self, values: Dict[str, Any]) -> None:
for key, value in values.items(): for key, value in values.items():