def comments_rate(comment_id, operation): """Comment rating function :param comment_id: the comment id :type comment_id: str :param rating: the rating (is cast from 0 to False and from 1 to True) :type rating: int """ if operation not in {'revoke', 'upvote', 'downvote'}: raise wz_exceptions.BadRequest('Invalid operation') api = system_util.pillar_api() # PATCH the node and return the result. comment = Node({'_id': comment_id}) result = comment.patch({'op': operation}, api=api) assert result['_status'] == 'OK' return jsonify({ 'status': 'success', 'data': { 'op': operation, 'rating_positive': result.properties.rating_positive, 'rating_negative': result.properties.rating_negative, } })
def post_rate(post_id, operation): """Comment rating function :param post_id: the post aid :type post_id: str :param operation: the rating 'revoke', 'upvote', 'downvote' :type operation: string """ if operation not in {'revoke', 'upvote', 'downvote'}: raise wz_exceptions.BadRequest('Invalid operation') api = system_util.pillar_api() # PATCH the node and return the result. comment = Node({'_id': post_id}) result = comment.patch({'op': operation}, api=api) assert result['_status'] == 'OK' return jsonify({ 'status': 'success', 'data': { 'op': operation, 'rating_positive': result.properties.rating_positive, 'rating_negative': result.properties.rating_negative, }})
def comment_edit(comment_id): """Allows a user to edit their comment.""" from pillar.web import jinja api = system_util.pillar_api() comment = Node({'_id': comment_id}) result = comment.patch({'op': 'edit', 'content': request.form['content']}, api=api) assert result['_status'] == 'OK' return jsonify({ 'status': 'success', 'data': { 'content': result.properties.content or '', 'content_html': jinja.do_markdowned(result.properties, 'content'), }})