예제 #1
0
def edit_article(id):
    data = json.loads(request.get_data())
    data = check_data(ArticleSchema,data)
    user_id = get_jwt_identity()
    article_query = {"$and":[{"_id":id},{"user_id":user_id}]}
    article = mongo.db.article.find_one_or_404(article_query)
    data['modified_time']=currentTime()
    update_data={'$set':data}
    mongo.db.article.update_one(article_query,update_data)
    article = mongo.db.article.find_one_or_404(article_query)
    return article
예제 #2
0
def add_article():
    data = json.loads(request.get_data())
    data = check_data(ArticleSchema,data)
    user_id = get_jwt_identity()
    data['_id']=generateID()
    data['user_id']=user_id
    data['created_time']=currentTime()
    data['modified_time']=data['created_time']
    data['click_num']=data['like_num']=data['favorite_num']=0
    mongo.db.article.insert_one(data)
    article = mongo.db.article.find_one_or_404({'_id':data['_id']})
    return article
예제 #3
0
def add_comment(id):
    data = json.loads(request.get_data())
    data = check_data(CommentSchema, data)
    user_id = get_jwt_identity()
    is_admin = get_jwt()['is_admin']
    query = {"_id": id}
    articles = mongo.db.article.find_one_or_404({'_id': id})
    article = Article(entries=articles)
    #TODO: 权限校验
    if check_article_like_auth(article, is_admin, user_id):
        comment = dict()
        comment['_id'] = generateID()
        comment['user_id'] = user_id
        comment['article_id'] = id
        comment['content'] = data['content']
        comment['time'] = currentTime()
        mongo.db.comment.insert_one(comment)
        return comment
    raise ApiError(NO_AUTH, 403)
예제 #4
0
def add_like(id):
    user_id = get_jwt_identity()
    is_admin = get_jwt()['is_admin']
    like_query = {"$and": [{"user_id": user_id}, {"article_id": id}]}
    like = mongo.db.like.find_one(like_query)
    if like != None:
        raise ApiError(REPETITIVE_OPERATION)
    query = {"_id": id}
    articles = mongo.db.article.find_one_or_404({'_id': id})
    article = Article(entries=articles)
    if check_article_like_auth(article, is_admin, user_id):
        update_data = {"$inc": {"like_num": 1}}
        mongo.db.article.update_one(query, update_data)
        like = dict()
        like['_id'] = generateID()
        like['user_id'] = user_id
        like['article_id'] = article.id
        like['time'] = currentTime()
        mongo.db.like.insert_one(like)
        return like
    raise ApiError(NO_AUTH, 403)