Ejemplo n.º 1
0
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})
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
def comments_create():
    current_user = get_jwt_identity()

    data = json.loads(request.data)
    content = data['content']['content']
    post_id = data['post_id']
    user = User.find_user_by_email(current_user['email'])

    try:
        comment = Comment(
            content=content,
            post_id=post_id,
            user_id=user.id
        )

        db.session.add(comment)
        db.session.commit()

        comment_schema = CommentSchema()
        comment_result = comment_schema.dump(comment)

        response_object = {
            'status': 'success',
            'message': 'Successfully created a Comment',
            'comment': comment_result[0]
        }
        return make_response(jsonify(response_object)), 201
    except Exception as e:
        response_object = {
            'status': 'fail',
            'message': 'Could not create a comment',
            'error': ','.join(e.args)
        }
        return make_response(jsonify(response_object)), 500
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
 def get_comments_by_username(username, index):
     cursor = DBHelper.mysql.get_db().cursor()
     sql = 'select * from comment where username=%s limit %s, %s'
     cursor.execute(sql, (username, index, 20))
     commentTuples = cursor.fetchall()
     comments = []
     for comment in commentTuples:
         comments.append(Comment(comment))
     if len(comments) == 0:
         comments = None
     return comments
Ejemplo n.º 6
0
 def get_comments(id):
     cursor = DBHelper.mysql.get_db().cursor()
     sql = 'select * from comment where ArticleId=%s'
     cursor.execute(sql, id)
     commentTuples = cursor.fetchall()
     comments = []
     for comment in commentTuples:
         comments.append(Comment(comment))
     if len(comments) == 0:
         comments = None
     return comments
Ejemplo n.º 7
0
def team_send_comment(teamid):
    count = Comment.count_comments_of_team(teamid)
    form = CreateCommentForm(request.form)
    if not form.validate():
        return render_template("team/teampage.html",
                               team=Team.query.get(teamid),
                               form=form,
                               users=User.list_by_score(team_id=teamid),
                               user=User.query.get(current_user.get_id()),
                               comments=Comment.list_team_comments(teamid, 1),
                               count=count,
                               page=1)
    text = form.text.data
    comment = Comment(teamid, current_user.get_id(), text)
    db.session().add(comment)
    db.session().commit()
    return redirect(
        url_for("team_page",
                teamid=User.query.get(current_user.get_id()).team_id))