Instantly share code, notes, and snippets.

Embed
What would you like to do?
~/code/projects/amnesia/amnesia/resources/ more base.py
# -*- coding: utf-8 -*-
from pyramid.security import DENY_ALL
class Resource:
def __init__(self, request):
self.request = request
def __acl__(self):
return [DENY_ALL]
@property
def dbsession(self):
return self.request.dbsession
(amnesia) █▓▒░jcigar@dev█▓▒░ Fri Apr 28 11:17:06P
~/code/projects/amnesia/amnesia/resources/ more root.py
# -*- coding: utf-8 -*-
from amnesia.modules.content import Content
from amnesia.modules.content import Entities
from amnesia.modules.folder import Folder
from amnesia.modules.folder import FolderResource
from amnesia.modules.folder import FolderEntity
from amnesia.modules.document import Document
from amnesia.modules.document import DocumentResource
from amnesia.modules.document import DocumentEntity
from amnesia.modules.event import Event
from amnesia.modules.event import EventEntity
from amnesia.modules.event import EventResource
from amnesia.modules.file import File
from amnesia.modules.file import FileEntity
from amnesia.modules.file import FileResource
from amnesia.modules.authentication import DatabaseAuthResource
from amnesia.resources import Resource
class Root(Resource):
__name__ = ''
__parent__ = None
def __getitem__(self, path):
# Access to a specific resource through it's id, ex: /123
if path.isdigit():
entity = self.dbsession.query(Content).get(path)
if isinstance(entity, Folder):
return FolderEntity(self.request, entity)
elif isinstance(entity, Document):
return DocumentEntity(self.request, entity)
elif isinstance(entity, Event):
return EventEntity(self.request, entity)
elif isinstance(entity, File):
return FileEntity(self.request, entity)
elif path == 'auth':
return DatabaseAuthResource(self.request)
elif path == 'entities':
return Entities(self.request, self)
elif path == 'event':
return EventResource(self.request, self)
elif path == 'document':
return DocumentResource(self.request, self)
elif path == 'folder':
return FolderResource(self.request, self)
elif path == 'file':
return FileResource(self.request, self)
raise KeyError
def get_root(request=None):
return Root(request)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment