From 477c3f34f8af919592c722cc1a71b2602cb7ac82 Mon Sep 17 00:00:00 2001 From: Frederick Muriuki Muriithi Date: Wed, 12 Jul 2023 14:32:23 +0300 Subject: Use new session to get user (author) information * wqflask/utility/json/__init__.py: Custom JSON for serialising UUIDs into a JSON representantion * wqflask/utility/json/encoders.py: Custom JSON for serialising UUIDs into a JSON representation * wqflask/wqflask/metadata_edits.py: Use new sessions for author information --- wqflask/utility/json/__init__.py | 3 +++ wqflask/utility/json/encoders.py | 17 +++++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 wqflask/utility/json/__init__.py create mode 100644 wqflask/utility/json/encoders.py (limited to 'wqflask/utility/json') diff --git a/wqflask/utility/json/__init__.py b/wqflask/utility/json/__init__.py new file mode 100644 index 00000000..b1141a34 --- /dev/null +++ b/wqflask/utility/json/__init__.py @@ -0,0 +1,3 @@ +"""Local JSON utilities.""" + +from .encoders import CustomJSONEncoder diff --git a/wqflask/utility/json/encoders.py b/wqflask/utility/json/encoders.py new file mode 100644 index 00000000..7c5839ac --- /dev/null +++ b/wqflask/utility/json/encoders.py @@ -0,0 +1,17 @@ +"""Custom JSON encoders""" +from uuid import UUID +from json import JSONEncoder + +# Do not use this `__ENCODERS__` variable outside of this module. +__ENCODERS__ = { + UUID: lambda obj: str(obj) +} + +class CustomJSONEncoder(JSONEncoder): + """Custom JSONEncoder class.""" + def default(self, obj): + """Serialise `obj` to a JSON representation.""" + obj_type = type(obj) + if obj_type in __ENCODERS__: + return __ENCODERS__[obj_type](obj) + return JSONEncoder.default(self, obj) -- cgit 1.4.1