From 4cf8581655c34698f8869bb364b6d436b881d17a Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 17 Dec 2018 00:35:19 +0100 Subject: returning results...! --- megapixels/app/server/json_encoder.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 megapixels/app/server/json_encoder.py (limited to 'megapixels/app/server/json_encoder.py') diff --git a/megapixels/app/server/json_encoder.py b/megapixels/app/server/json_encoder.py new file mode 100644 index 00000000..89af578a --- /dev/null +++ b/megapixels/app/server/json_encoder.py @@ -0,0 +1,17 @@ +from sqlalchemy.ext.declarative import DeclarativeMeta +from flask import json + +class AlchemyEncoder(json.JSONEncoder): + def default(self, o): + if isinstance(o.__class__, DeclarativeMeta): + data = {} + fields = o.__json__() if hasattr(o, '__json__') else dir(o) + for field in [f for f in fields if not f.startswith('_') and f not in ['metadata', 'query', 'query_class']]: + value = o.__getattribute__(field) + try: + json.dumps(value) + data[field] = value + except TypeError: + data[field] = None + return data + return json.JSONEncoder.default(self, o) -- cgit v1.2.3-70-g09d2