def answer_submit(): answer_body = request.form.get("write_answer") question_id = request.form.get("question_id") if not answer_body or not question_id: flash(constant.FAIL) return redirect(url_for('main.question_detail', id=question_id)) flag = Answer.answer_question(current_user.id, question_id, answer_body) if not flag: flash(constant.FAIL) else: current_user.notify_follower(flag.id, "answer") return redirect(url_for('main.question_detail', id=question_id))
def follow(username): """关注某人""" user = User.query.filter_by(username=username).first() if user is None: return jsonify(error=constant.INVALID_USER) if user == current_user: return jsonify(constant.CANNOT_CON_MYSELF) if current_user.is_following(user): return jsonify(error=constant.ALREADY_CON) try: current_user.follow(user) except Exception as e: return jsonify(constant.FAIL) current_user.notify_follower(user.id, "follow_user") return jsonify(error="")
def follow_question(question_id): """关注某个问题""" question = Question.query.filter_by(id=question_id).first() if question is None or current_user.is_following_question(question): return jsonify(error=constant.FAIL) # 关注问题 try: current_user.follow_question(question) except Exception as e: return jsonify(error=constant.FAIL) current_user.add_dynamic(current_user.id, question.id, "question") # 增加关注问题动态记录 current_user.notify_follower(question.id, "follow_ques") return jsonify(error="")
def follow_topic(topic_id): """关注某个话题""" topic = Topic.query.filter_by(id=topic_id).first() if topic is None or current_user.is_following_topic(topic): return jsonify(error=constant.FAIL) # 关注话题 try: current_user.follow_topic(topic) except Exception as e: return jsonify(error=constant.FAIL) current_user.add_dynamic(current_user.id, topic.id, "topic") # 增加关注话题动态记录 current_user.notify_follower(topic.id, "follow_topic") return jsonify(error="")
def submit_question(): question = request.form.get("question") question_desc = request.form.get("question_desc") topic = request.form.get("topic") if topic == None or topic == "": return jsonify(error=constant.NOT_VALID_CHOICE) if len(question) > 60 or len(question_desc) > 500: return jsonify(error=constant.QUESTION_ERROR) # 添加问题 result = Question.add_question(question, question_desc, topic, current_user.id) if not result: # 操作失败 return jsonify(error=constant.FAIL) current_user.follow_question(result) # 提问者默认关注提出的问题 current_user.notify_follower(result.id, "ask") return jsonify(result=result.id, error="")