def create_comment(): result = comment_schema.load(request.get_json()) if result.errors: return result.errors, 400 comment = Comment(**result.data) db.session.add(comment) db.session.commit() return comment.to_json().data, 200
def save_comment(id=None): user = auth.service.get_user() data = dict(request.form) data['upload'] = request.files.getlist('upload') v = Validator(data) v.fields('upload').image() v.fields('file.id').integer(nullable=True) if v.is_valid(): if not id: v.field('entity_name').required() v.field('entity_id').integer(nullable=True).required() if not v.valid_data.list('url') and not v.valid_data.list('upload'): v.field('comment').required(message="Напишите хоть что-нибудь...") if v.is_valid() and user.is_authorized(): data = v.valid_data if not id: comment = Comment() comment.author_id = user.id comment.entity = data.entity_name comment.entity_id = data.entity_id else: comment = Comment.get(id) if comment: comment.modify_datetime = datetime.datetime.now() comment.status = Comment.Status.MODIFIED if comment: return save(comment, data) v.add_error('comment', 'Что-то пошло не так... Попробуйте позже.') return jsonify({'status': 'fail', 'errors': v.errors})
def create_comments(meal_date_id, request_user_id=None): request_params = request.get_json() content = request_params.get('content') request_params['mealDateId'] = meal_date_id request_params['userId'] = request_user_id if content is None: return jsonify( userMessage="내용을 입력해주세요." ), 400 if meal_date_id is None: return jsonify( userMessage="댓글을 작성할 식단날짜를 입력해주세요." ), 400 try: meal_date = db.session.query(MealDate).filter(MealDate.id == meal_date_id).one() except: return jsonify( userMessage="댓글 작성할 식단날짜를 잘못 선택하셨습니다." ) if request_user_id is None: return jsonify( userMessage="유저 정보가 없습니다." ), 400 try: comment = Comment() comment = comment.update_data(**request_params) db.session.add(comment) db.session.commit() q = db.session.query(Comment, User) \ .outerjoin(User, User.id == Comment.user_id) \ .filter(Comment.id == comment.id) return jsonify( data=SerializableModelMixin.serialize_row(q.one()) ), 200 except: return jsonify( userMessage="server deny your request, check param value" ), 403
def delete(id): user = auth.service.get_user() if user.is_authorized(): comment = Comment.get(id) if comment and (user.is_admin or comment.author == user or 'manage_comments' in user.get_permissions()): comment_json = None def delete_parent(comment): should_delete = True if comment is not None and comment.status == Comment.Status.DELETED: for quote in comment.quotes: if quote.status != Comment.Status.DELETED: should_delete = False if should_delete: db.session.delete(comment) db.session.flush() delete_parent(comment.quote_for) if comment.quotes: comment.status = Comment.Status.DELETED comment_json = get_comment_json(comment) else: db.session.delete(comment) db.session.flush() delete_parent(comment.quote_for) db.session.flush() entity = comment.get_entity() if entity: entity.after_delete_comment(comment) db.session.commit() return jsonify({'status': 'ok', 'comment': comment_json}) return jsonify({'status': 'fail'})
def json_all_comments(entity, entity_id): comments = Comment.get_for(entity, entity_id, lazy=False) comments = {'data': [get_comment_json(comment) for comment in comments]} return jsonify(comments)
def test_destroy(client): topic = Topic.create({'title': 'title1', 'body': 'body1'}) comment = Comment.create({'topic_id': topic.id(), 'body': 'body1'}) comment.destroy() assert (Topic.is_exists(topic.id())) assert (not Comment.is_exists(comment.id()))
def all(request): twitter_id = int(request.query.get('twitter_id')) cs = Comment.find_all(twitter_id=twitter_id) cs_json = [c.json() for c in cs] return json_response(cs_json)
def update(request): form = request.json() id = int(form.get('id')) t = Comment.update(id, form) return json_response(t.json())
def delete(request): comment_id = int(request.query.get('id')) c = Comment.delete(comment_id) return json_response(c.json())
def add(request): u = current_user(request) form = request.json() c = Comment.new(form, u.id) return json_response(c.json())