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
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