Move sqlalchemy_dumps to atst.utils.json

This commit is contained in:
richard-dds 2019-10-07 15:22:21 -04:00
parent 343e989de8
commit 78c4949776
2 changed files with 14 additions and 12 deletions

View File

@ -8,8 +8,6 @@ from flask_session import Session
import redis import redis
from unipath import Path from unipath import Path
from flask_wtf.csrf import CSRFProtect from flask_wtf.csrf import CSRFProtect
import json
from enum import Enum
from atst.database import db from atst.database import db
from atst.assets import environment as assets_environment from atst.assets import environment as assets_environment
@ -31,7 +29,7 @@ from atst.models.permissions import Permissions
from atst.queue import celery, update_celery from atst.queue import celery, update_celery
from atst.utils import mailer from atst.utils import mailer
from atst.utils.form_cache import FormCache from atst.utils.form_cache import FormCache
from atst.utils.json import CustomJSONEncoder from atst.utils.json import CustomJSONEncoder, sqlalchemy_dumps
from atst.utils.notification_sender import NotificationSender from atst.utils.notification_sender import NotificationSender
from atst.utils.session_limiter import SessionLimiter from atst.utils.session_limiter import SessionLimiter
@ -150,15 +148,6 @@ def set_default_headers(app): # pragma: no cover
def map_config(config): def map_config(config):
def sqlalchemy_dumps(dct):
def _default(obj):
if isinstance(obj, Enum):
return obj.name
else:
raise TypeError()
return json.dumps(dct, default=_default)
return { return {
**config["default"], **config["default"],
"ENV": config["default"]["ENVIRONMENT"], "ENV": config["default"]["ENVIRONMENT"],

View File

@ -1,6 +1,9 @@
from flask.json import JSONEncoder from flask.json import JSONEncoder
import json
from werkzeug.datastructures import FileStorage from werkzeug.datastructures import FileStorage
from datetime import date from datetime import date
from enum import Enum
from atst.models.attachment import Attachment from atst.models.attachment import Attachment
@ -13,3 +16,13 @@ class CustomJSONEncoder(JSONEncoder):
elif isinstance(obj, FileStorage): elif isinstance(obj, FileStorage):
return obj.filename return obj.filename
return JSONEncoder.default(self, obj) return JSONEncoder.default(self, obj)
def sqlalchemy_dumps(dct):
def _default(obj):
if isinstance(obj, Enum):
return obj.name
else:
raise TypeError()
return json.dumps(dct, default=_default)