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