mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-04-11 12:51:05 -04:00
33 lines
755 B
Python
33 lines
755 B
Python
from flask import abort
|
|
|
|
|
|
class JSONModel():
|
|
|
|
ALLOWED_PROPERTIES = set()
|
|
|
|
def __init__(self, _dict):
|
|
# in the case of a bad request _dict may be `None`
|
|
self._dict = _dict or {}
|
|
|
|
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
|