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)
Пример #2
0
 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()
Пример #3
0
 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()
Пример #5
0
 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()
Пример #7
0
    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)
Пример #8
0
 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()
Пример #9
0
 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()
Пример #10
0
 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()
Пример #11
0
 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()
Пример #12
0
 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()