Example #1
0
class Resource(object):
    def __init__(self, name, parent=None, schema=None, hooks=None):
        self.name = name
        self.parent = parent
        self.parents = self.create_parents()
        self.handler = Handler(name, schema, hooks or {})
        if schema is not None:
            self.before_write(validate)

    def create_parents(self):
        if self.parent is not None:
            return self.parent.parents + [self.parent.name]
        return []

    def before_read(self, hook):
        self.add_hook(hook, *('before_' + i for i in ('get', 'find')))

    def before_write(self, hook):
        self.add_hook(hook, *('before_' + i for i in ('create', 'replace', 'update')))

    def before(self, hook):
        self.add_hook(hook, *('before_' + i for i in ('create', 'replace', 'update', 'get', 'find')))

    def after_read(self, hook):
        self.add_hook(hook, *('after_' + i for i in ('get', 'find')))

    def after_write(self, hook):
        self.add_hook(hook, *('after_' + i for i in ('create', 'replace', 'update')))

    def after(self, hook):
        self.add_hook(hook, *('after_' + i for i in ('create', 'replace', 'update', 'get', 'find')))

    def add_hook(self, hook, *actions):
        for i in actions:
            self.handler.add_hook(i, hook)
Example #2
0
 def __init__(self, name, parent=None, schema=None, hooks=None):
     self.name = name
     self.parent = parent
     self.parents = self.create_parents()
     self.handler = Handler(name, schema, hooks or {})
     if schema is not None:
         self.before_write(validate)