Files
notifications-admin/app/models/__init__.py
Chris Hill-Scott bd9acb1310 Make invited user model inherit from JSONModel
This is more consistent, and less fiddly that always having to call it
with a dictionary expansion.
2019-06-05 14:39:02 +01:00

36 lines
917 B
Python

from flask import abort
class JSONModel():
ALLOWED_PROPERTIES = set()
DEFAULTS = dict()
def __init__(self, _dict):
# in the case of a bad request _dict may be `None`
self._dict = _dict or {}
for attribute, default_value in self.DEFAULTS.items():
self._dict[attribute] = self._dict.get(attribute, default_value)
def __bool__(self):
return self._dict != {}
def __getattr__(self, attr):
if attr in self.ALLOWED_PROPERTIES:
return self._dict[attr]
return
raise AttributeError('`{}` is not a {} attribute'.format(
attr,
self.__class__.__name__.lower(),
))
def _get_by_id(self, things, id):
try:
return next(thing for thing in things if thing['id'] == str(id))
except StopIteration:
abort(404)
class InviteTokenError(Exception):
pass