Example #1
0
    def __init__(self, request, cls, table_lookup=None):
        self.request = request
        self.session = get_session(self.request)
        self.cls = cls

        if table_lookup == None:
            self.table_lookup = self.cls.__tablename__
        else:
            self.table_lookup = table_lookup
    def __init__(self, request, cls, table_lookup=None):
        self.request = request
        self.session = get_session(self.request)
        self.cls = cls

        if table_lookup == None:
            self.table_lookup = self.cls.__tablename__
        else:
            self.table_lookup = table_lookup
    def __init__(self, request):
        self.request = request
        self.base = get_base(request)
        self.session = get_session(request)
        self.tables = {}

        # Loop through all the tables in the SQLAlchemy registry
        # and store them if they subclass the TraversalMixin
        for key, table in self.base._decl_class_registry.items():
            if isinstance(table, type) and issubclass(table, TraversalMixin):
                table.__parent__ = self
                self.tables[table.__tablename__] = table
Example #4
0
    def __init__(self, request):
        self.request = request
        self.base = get_base(request)
        self.session = get_session(request)
        self.tables = {}

        # Loop through all the tables in the SQLAlchemy registry
        # and store them if they subclass the TraversalMixin
        for key, table in self.base._decl_class_registry.items():
            if isinstance(table, type) and issubclass(table, TraversalMixin):
                table.__parent__ = self
                self.tables[table.__tablename__] = table
Example #5
0
def resources_view(request):
    session = get_session(request)

    if request.method == 'GET':
        #TODO: Do we really want to be doing this? :P
        results = request.context.__json__(request)
        parent_pks = {}
        get_parent_keys(request.context, parent_pks)

        if isinstance(request.context, ModelCollection):
            results = []
            for obj in request.context:
                json = obj.__json__(request)
                results.append(dict(json.items() + parent_pks.items()))

            return results
        else:
            return dict(results.items() + parent_pks.items())

    elif request.method == 'POST' or request.method == 'PUT':
        if isinstance(request.context, SQLAlchemyRoot):
            request.context = request.context.cls()

        saver = request.registry.adapters.lookup(
            [providedBy(request.context)], ISaver
        )

        if saver == None:
            raise Exception("You need to register an ISaver for %s" %
                request.context
            )

        result = saver(request)

        if not isinstance(result, TraversalMixin):
            if 'has_errors' in result:
                request.response_status = '400 Bad Request'

        if 'serverAttrs' in request.json:
            to_return = {}
            for attr in request.json['serverAttrs']:
                to_return[attr] = getattr(result, attr)

            return to_return

        return result
    elif request.method == 'DELETE':
        session.delete(request.context)
        return {'success': True}
Example #6
0
def resources_view(request):
    session = get_session(request)

    if request.method == 'GET':
        #TODO: Do we really want to be doing this? :P
        results = request.context.__json__(request)
        parent_pks = {}
        get_parent_keys(request.context, parent_pks)

        if isinstance(request.context, ModelCollection):
            results = []
            for obj in request.context:
                json = obj.__json__(request)
                results.append(
                    dict(list(json.items()) + list(parent_pks.items())))

            return results
        else:
            return dict(list(results.items()) + list(parent_pks.items()))

    elif request.method == 'POST' or request.method == 'PUT':
        if isinstance(request.context, SQLAlchemyRoot):
            request.context = request.context.cls()

        saver = request.registry.adapters.lookup([providedBy(request.context)],
                                                 ISaver)

        if saver == None:
            raise Exception("You need to register an ISaver for %s" %
                            request.context)

        result = saver(request)

        if not isinstance(result, TraversalMixin):
            if 'has_errors' in result:
                request.response_status = '400 Bad Request'

        if 'serverAttrs' in request.json:
            to_return = {}
            for attr in request.json['serverAttrs']:
                to_return[attr] = getattr(result, attr)

            return to_return

        return result
    elif request.method == 'DELETE':
        session.delete(request.context)
        return {'success': True}
 def __init__(self, cls, query, request, old_gi):
     self.cls = cls
     self.query = query
     self.request = request
     self.session = get_session(self.request)
     self.old_gi = old_gi
Example #8
0
 def __init__(self, cls, query, request, old_gi):
     self.cls = cls
     self.query = query
     self.request = request
     self.session = get_session(self.request)
     self.old_gi = old_gi