Example #1
0
def post_get_content(id):
    """ 
        Retrieves/sets post content
        Returns post data in its native XHTML format, or 404 if post not found

        GET: Retrieve the content
        PUT: Updates content
    """
    from ghostwriter.Post import Post, PostManager
    pm = PostManager()
    post = pm.getPostbyID(id)

    if post is None:
        return '', 404

    if request.method == 'GET':
        return post.getContent()

    if request.method == 'PUT':
        if not current_user.is_authenticated:
            return login_manager.unauthorized()

        post.setContent(request.form['content'])
        pm.updatePostContent(post)
        return '', 200
Example #2
0
def post_get(id):
    """
        Manage the post
        If post not found, give a 404 Not Found error

        GET: Retrieve post metadata, in JSON format
        PUT: Update any field of post metadata. Return it in JSON format
        DELETE: Delete the post
    """
    from ghostwriter.Post import Post, PostManager
    pm = PostManager()
    post = pm.getPostbyID(id)

    if post is None:
        return jsonify({'error': 'The post could not be found'}), 404

    if request.method == 'GET':
        jdata = {
            'id': post.ID,
            'title': post.title,
            'creation_date': post.creation_date.isoformat(),
            'summary': post.getSummary(),
            'owner': {
                'id': post.getOwner().uid,
                'name': post.getOwner().name
            }
        }
        return jsonify(jdata), 200
    elif request.method == 'DELETE':
        #TODO: check parmissions
        if current_user.uid != post.getOwner().uid:
            return jsonify({'error': 'Not authorized to delete the pos'}), 401

        pm.removePost(post)
        return "", 200
    elif request.method == 'PUT':
        title = request.form['title']
        post.title = title
        pm.updatePostMetadata(post)
        jdata = {
            'id': post.ID,
            'title': post.title,
            'creation_date': post.creation_date.isoformat(),
            'summary': post.getSummary(),
            'owner': {
                'id': post.getOwner().uid,
                'name': post.getOwner().name
            }
        }
        return jsonify(jdata), 200
    else:
        return "", 405