def post(self): import app_config from app.database_models import Comments, Threads if g.user.role == app_config.USER_ROLE_ADMIN: comment_id = request.json.get('comment_id', None) if comment_id is not None: session = AppUtils.get_session() try: comment = session.query(Comments).filter_by( id=comment_id).first() if comment is not None: session.delete(comment) session.commit() return ResponseClass.ok() finally: session.close() else: thread_id = request.json.get('thread_id', None) comment_id = request.json.get('comment_id', None) if comment_id is None or thread_id is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) session = AppUtils.get_session() c = session.query(Comments).filter_by(id=comment_id, user_id=g.user.id).first() t = session.query(Threads).filter_by(id=thread_id).first() if t is None or c is None: session.close() return ResponseClass.warn(ResponseCode.COMMENT_NOT_FOUND) result = t.del_comment(comment_id) if result: session.close() return ResponseClass.ok() else: session.close() return ResponseClass.warn(ResponseCode.SERVER_ERROR)
def post(self): from app_config import USER_ROLE_ADMIN from app.database_models import Threads if g.user.role == USER_ROLE_ADMIN: # 系统删帖 t_id = request.json.get('thread_id', None) session = AppUtils.get_session() try: th = session.query(Threads).filter_by(id=t_id).first() if th is None: return ResponseClass.warn(ResponseCode.THREAD_NOT_EXIST) session.delete(th) session.commit() return ResponseClass.ok() finally: session.close() else: t_id = request.json.get('thread_id', None) session = AppUtils.get_session() th = session.query(Threads).filter_by(user_id=g.user.id, id=t_id).first() if th is None: return ResponseClass.warn(ResponseCode.THREAD_NOT_EXIST) AppUtils.delete_to_sql(th).close() return ResponseClass.ok()
def post(self): user_id = g.user.id session = app_utils.AppUtils.get_session() try: from app.database_models import SignIn record = session.query(SignIn).filter_by(user_id=user_id).first() from app.database_models import User user = session.query(User).filter_by(id=user_id).first() if record is None: # 从来没签过到 sign_in_record = SignIn() sign_in_record.user_id = user_id user.credits = user.credits + 1 session.add(sign_in_record) return ResponseClass.ok() else: pre_sign_in_time = record.sign_in_time current_time = datetime.now() if current_time.day > pre_sign_in_time.day: # 可以签到,更新时间 record.sign_in_time = current_time user.credits = user.credits + 1 return ResponseClass.ok() else: return ResponseClass.warn(ResponseCode.ALREADY_SIGN_IN) finally: session.commit() session.close()
def post(self): t_id = request.json.get('thread_id', None) # 帖子ID c_id = request.json.get('code_id', None) content = request.json.get('content', None) if t_id is None or content is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) session = AppUtils.get_session() try: from app.database_models import Threads thread = session.query(Threads).filter_by(id=t_id).first() if thread is None: return ResponseClass.warn(ResponseCode.THREAD_NOT_EXIST) from app.database_models import Comments new_comment = Comments() new_comment.code_id = c_id new_comment.user_id = g.user.id new_comment.threads_id = t_id new_comment.content = content result = thread.submit_comment(new_comment, session) if result: user = session.query(User).filter_by(id=g.user.id).first() user.credits += 5 session.commit() return ResponseClass.ok() else: return ResponseClass.warn(ResponseCode.OPERATION_TOO_FAST) finally: session.close()
def get(self, user_id): t1 = time.clock() session = AppUtils.get_session() try: from models.models import User q_user = session.query(User).filter_by(id=user_id).with_for_update().first() if q_user is None: return ResponseClass.warn(ResponseCode.USER_NOT_EXIST) else: # 判断是否点过赞,点过赞则警告 from models.models import UserLikes result = session.query(UserLikes).filter_by(user_id=g.user.id, like_user=user_id).with_for_update().first() if result is None: # 点赞 q_user.likes += 1 likes = UserLikes() likes.user_id = g.user.id likes.like_user = user_id session.add(likes) return ResponseClass.ok() else: # TODO 测试并发量 q_user.likes += 1 return ResponseClass.warn(ResponseCode.ALREADY_LIKED) finally: session.commit() print("请求时间:%f" % (time.clock() - t1)) session.close()
def get(self, id): session = AppUtils.get_session() try: from app.database_models import Code code = session.query(Code).filter_by(user_id=g.user.id, id=id).first() if code is not None: session.delete(code) return jsonify(ResponseClass.ok()) finally: session.close()
def post(self): field = request.json.get("field", None) value = request.json.get("value", None) if field is not None and value is not None: user = g.user # 需要重新查找,这个User未绑定sql,无法更新 session = AppUtils.get_session() user = session.query(User).filter_by(id=user.id).first() try: if field == "nickname": user.nickname = value session.commit() return ResponseClass.ok() elif field == "avatar_url": user.avatar_url = value session.commit() return ResponseClass.ok() finally: session.close() return ResponseClass.warn(ResponseCode.FORMAT_ERROR)
def post(self): code_id = request.json.get('code_id', None) title = request.json.get('title', None) subtitile = request.json.get('subtitle', '') from app.database_models import Threads if not Threads.verify_title(title): return ResponseClass.warn(ResponseCode.FORMAT_ERROR) thread = Threads() thread.user_id = g.user.id thread.title = title thread.code_id = code_id thread.subtitle = subtitile AppUtils.add_to_sql(thread).close() return ResponseClass.ok()
def post(self): cart_id = int(request.json.get("item_id", None)) if cart_id is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) session = AppUtils.get_session() try: cart = Cart() cart.item_id = cart_id cart.user_id = g.user.id session.add(cart) session.commit() return ResponseClass.ok() except Exception as e: pass finally: session.close()
def post(self): cart_id = int(request.json.get("item_id", None)) if cart_id is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) session = AppUtils.get_session() try: item = session.query(Cart).filter_by(user_id=g.user.id, id=cart_id).first() if item is None: return ResponseClass.warn(ResponseCode.ITEM_NOT_FOUND) session.delete(item) session.commit() return ResponseClass.ok() except Exception as e: pass finally: session.close()
def post(self): name = request.json.get("username", None) if name is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) session = AppUtils.get_session() try: user = session.query(User).filter_by(username=name).first() if user is None: user = session.query(User).filter_by(mail=name).first() if user is None: return ResponseClass.warn(ResponseCode.USER_NOT_EXIST) else: # 发送邮件 if self.send_reset_password_mail(user): return ResponseClass.ok() else: # 没发出去,服务器错误 return ResponseClass.warn(ResponseCode.SERVER_ERROR) finally: session.close()
def post(self): email = request.json.get("email", None) if email is None: return ResponseClass.warn(ResponseCode.FORMAT_ERROR) self.send_reset_password_mail(email) return ResponseClass.ok()