コード例 #1
0
ファイル: servlet.py プロジェクト: dnephin/TreeOrg
    def GET(self, key):
        """GET called to retrieve children of a node."""
        user = users.get_current_user()

        children = models.Node.get_children([db.Key(key)])
        for child in children:
            assert child.user == user
        return json.enc(children)
コード例 #2
0
ファイル: servlet.py プロジェクト: dnephin/TreeOrg
    def POST(self, key):
        """POST called to create a new node."""
        user = users.get_current_user()

        node_data = json.dec(web.data())
        assert not key
        assert not node_data.get("key")

        logging.info("New Node: %r" % node_data)
        new_node = models.Node.new_for_user(user, node_data)
        new_node.put()
        return json.enc(new_node)
コード例 #3
0
ファイル: servlet.py プロジェクト: dnephin/TreeOrg
    def PUT(self, key):
        """PUT called to save an existing node."""
        user = users.get_current_user()

        # TODO: handle errors?
        new_node = json.dec(web.data())

        # Check old node belongs to this user
        old_node = models.Node.get(new_node.key())
        assert old_node.user == user
        new_node.put()

        # Remove reference to children since these should be transient
        # and sending them back after a save request confuses the
        # client and causes duplicate child nodes.
        new_node.children = None
        return json.enc(new_node)
コード例 #4
0
ファイル: servlet.py プロジェクト: dnephin/TreeOrg
    def GET(self, key):
        """GET called to retrieve a node."""
        user = users.get_current_user()

        input = web.input()
        # limit depth to 5
        depth = min(int(input.get("depth") or 0), 5)

        # Look for root node
        if not key:
            node = models.Node.get_root_for_user(user, load_depth=depth)

            # TODO: write on GET
            # First visit
            if not node:
                node = models.Node.new_for_user(user, {"value": "root", "root_node": True})
                node.put()
        else:
            node = models.Node.get_with_children(key)
            if not node or node.user != user:
                raise web.notfound()

        return json.enc(node)