示例#1
0
    def delete(self):
        # 头部的key不能有下划线
        self.delete_parser.add_argument("evaid",
                                        type=int,
                                        required=True,
                                        location="headers")
        self.delete_parser.add_argument("uid",
                                        type=int,
                                        required=True,
                                        location="headers")
        self.delete_parser.add_argument("token",
                                        required=True,
                                        location="headers")
        args = self.delete_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            print(args)
            try:
                eva_res = get_eva_by_id(args['evaid']).first()
                if eva_res is None:
                    return {"error": "eva_id doesn't exist"}, 404
                elif eva_res.uid != args['uid']:
                    return {"error": "eva_id doesn't belong to uid"}, 403

                ret = delete_eva_by_id(args['evaid'])
                if ret[0]:
                    return {"status": "deleted"}, 200
                else:
                    print("error : ", ret[1])
                    return {"error": ret[1]}, 400
            except Exception as e:
                print("error : ", repr(e))
                return {"error": "wrong operation"}, 500
        return {"error": "unauthorized"}, 401
示例#2
0
    def get(self):
        self.get_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="args")
        self.get_parser.add_argument("token", required=True, location="args")
        self.get_parser.add_argument("topic_id", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_index", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_size", type=int, location="args")
        args = self.get_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):
            # print(args)
            try:
                ret = personal_post_query(args)

                if ret[0]:
                    return ret[1]
                return {"error": ''}, 404
            except Exception as e:
                print(traceback.print_exc())
                return {"error": repr(e)}, 500
        else:
            return {"error": "unauthorized"}, 401
示例#3
0
    def get(self):

        self.get_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="args")
        self.get_parser.add_argument("token", required=True, location="args")
        self.get_parser.add_argument("mode", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_index", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_size", type=int, location="args")
        args = self.get_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):

            try:

                ret = eva_query(args)

                if ret[0]:
                    return ret[1], 200
                else:
                    return {"error": ret[1]}, 400
            except Exception as e:
                print(traceback.print_exc())
                return {"error": "wrong operation"}, 500

        return {"error": "unauthorized"}, 401
示例#4
0
    def put(self):
        self.put_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("token", required=True, location="form")
        self.put_parser.add_argument("eva_id",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("score", required=True, location="form")
        self.put_parser.add_argument("tags", required=True, location="form")
        self.put_parser.add_argument("content", required=True, location="form")
        args = self.put_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            print(args)
            try:
                eva_res = get_eva_by_id(args['eva_id']).first()
                if eva_res is None:
                    return {"error": "eva_id doesn't exist"}, 404
                elif eva_res.uid != args['uid']:
                    return {"error": "eva_id doesn't belong to uid"}, 403
                comment_time = datetime.now()
                ret = update_eva(args['eva_id'], args['content'], args['tags'],
                                 args['score'], True, comment_time)
                if ret[0]:
                    return {"status": "updated"}, 200
                else:
                    return {"error": ret[1]}, 400
            except Exception as e:
                return {"error": "wrong operation"}, 500
        return {"error": "unauthorized"}, 401
    def delete(self):
        # 头部的key不能有下划线
        self.delete_parser.add_argument("findlostid",
                                        type=int,
                                        required=True,
                                        location="headers")
        self.delete_parser.add_argument("uid",
                                        type=int,
                                        required=True,
                                        location="headers")
        self.delete_parser.add_argument("token",
                                        required=True,
                                        location="headers")
        args = self.delete_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            # print(args)
            try:
                ret = findlost_delete(args['uid'], args['findlostid'])
                if ret[0]:
                    return {"status": "deleted"}, 200
                else:
                    print("error : ", ret[1])
                    return {"error": ret[1]}, ret[2]
            except Exception as e:
                print("error : ", repr(e))
                return {"error": "wrong operation"}, 500
        else:
            return {"error": "unauthorized"}, 401
示例#6
0
    def put(self):

        self.put_parser.add_argument("todo_id",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("token", required=True, location="form")
        self.put_parser.add_argument("status",
                                     type=int,
                                     required=True,
                                     location="form")

        args = self.put_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            # print(args)
            try:
                ret = todo_update_status(args['todo_id'], args['status'])
                if ret[0]:
                    return {"status": "updated"}, 200
                else:
                    return {"error": ret[1]}, 404
            except StatementError as e:
                return {"error": "bad request"}, 400
            except Exception as e:
                return {"error": "wrong operation"}, 500
        else:
            return {"error": "unauthorized"}, 401
示例#7
0
    def post(self):
        self.post_parser.add_argument("uid",
                                      type=int,
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("token", required=True, location="form")
        self.post_parser.add_argument("comment_id",
                                      type=int,
                                      required=True,
                                      location="form")
        args = self.post_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):

            try:
                ret = comment_like_add(args['uid'], args['comment_id'])
                print(ret)
                if ret[0]:
                    return {"status": "created", 'id': ret[1]}, 200
                else:
                    return {"error": ret[2]}, ret[1]
            except Exception as e:
                print("error : ", repr(e))
                return {"error": "wrong operation"}, 500
        return {"error": "unauthorized"}, 401
示例#8
0
 def put(self):
     self.put_parser.add_argument("uid",
                                  type=int,
                                  required=True,
                                  location="form")
     self.put_parser.add_argument("token", required=True, location="form")
     self.put_parser.add_argument("todo_id",
                                  type=int,
                                  required=True,
                                  location="form")
     self.put_parser.add_argument("label", required=True, location="form")
     self.put_parser.add_argument("title", required=True, location="form")
     self.put_parser.add_argument("content", required=True, location="form")
     self.put_parser.add_argument("start_time",
                                  required=True,
                                  location="form")
     self.put_parser.add_argument("deadline_time",
                                  required=True,
                                  location="form")
     self.put_parser.add_argument("priority",
                                  type=int,
                                  required=True,
                                  location="form")
     self.put_parser.add_argument("img_link", location="form")
     args = self.put_parser.parse_args()
     start_time = datetime.strptime(args['start_time'],
                                    "%Y-%m-%d %H:%M:%S").timestamp()
     deadline_time = datetime.strptime(args['deadline_time'],
                                       "%Y-%m-%d %H:%M:%S").timestamp()
     if start_time >= deadline_time:
         return {"error": "deadline_time <= start_time"},
     # 检查token
     if general_operation.check_token(args):
         # print(args)
         try:
             ret = todo_update(
                 args['todo_id'],
                 args['label'],
                 args['title'],
                 args['content'],
                 args['start_time'],
                 args['deadline_time'],
                 args['priority'],
                 0,
                 args.get('img_link', ''),
             )
             if ret[0]:
                 return {"status": "updated"}, 200
             else:
                 return {"error": ret[1]}, 404
         except Exception as e:
             return {"error": "wrong operation"}, 500
     else:
         return {"error": "unauthorized"}, 401
示例#9
0
    def post(self):
        self.post_parser.add_argument("uid",
                                      type=int,
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("token", required=True, location="form")
        self.post_parser.add_argument("class_id",
                                      type=int,
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("score",
                                      type=int,
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("tags", required=True, location="form")
        self.post_parser.add_argument("content",
                                      required=True,
                                      location="form")

        args = self.post_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            print(args)
            try:
                # 检测class_id 是否存在
                class_res = get_class_by_class_id(args['class_id'])
                if class_res is None:
                    return {"error": "class_id doesn't exist"}, 404

                teacher_id = class_res.teacher_id
                cid = class_res.cid

                ret = insert_eva(args['uid'], args['class_id'],
                                 args['content'], args['tags'], args['score'],
                                 True, cid, teacher_id)

                print(ret)
                if ret[0]:
                    return {"status": "created", 'id': ret[1]}, 200
                else:
                    return {"error": ret[1]}, 400
            except Exception as e:
                print("error : ", repr(e))
                return {"error": "wrong operation"}, 500
        return {"error": "unauthorized"}, 401
示例#10
0
    def put(self):
        # uid, title, location,  description, contact, img_link, kind)
        self.put_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("token", required=True, location="form")
        self.put_parser.add_argument("findlost_id",
                                     type=int,
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("title", required=True, location="form")
        self.put_parser.add_argument("location",
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("description",
                                     required=True,
                                     location="form")
        self.put_parser.add_argument("contact", required=True, location="form")
        self.put_parser.add_argument("img_link",
                                     required=False,
                                     location="form")
        self.put_parser.add_argument("kind",
                                     type=int,
                                     required=True,
                                     location="form")
        args = self.put_parser.parse_args()

        # 检查token
        if general_operation.check_token(args):
            print(args)
            try:
                ret = findlost_update(args['uid'], args['findlost_id'],
                                      args['title'], args['location'],
                                      args['description'], args['contact'],
                                      args.get('img_link', ''), args['kind'])
                if ret[0]:
                    return {"status": "updated"}, 200
                else:
                    return {"error": ret[1]}, ret[2]
            except Exception as e:
                print(traceback.print_exc())
                return {"error": "wrong operation"}, 500
        else:
            return {"error": "unauthorized"}, 401
示例#11
0
    def get(self):

        self.get_parser.add_argument("uid",
                                     type=int,
                                     required=True,
                                     location="args")
        self.get_parser.add_argument("token", required=True, location="args")
        self.get_parser.add_argument("class_id",
                                     required=True,
                                     location="args")
        self.get_parser.add_argument("mode", type=int, location="args")
        # term = 1:本学期
        # term = -1:所有学期
        self.get_parser.add_argument("term", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_index", type=int, location="args")
        # 用于分页
        self.get_parser.add_argument("page_size", type=int, location="args")
        args = self.get_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):

            try:
                # 检测class_id 是否存在
                class_res = get_class_by_class_id(args['class_id'])
                if class_res is None:
                    return {"error": "class_id doesn't exist"}, 404

                teacher_id = class_res.teacher_id
                cid = class_res.cid

                args['teacher_id'] = teacher_id
                args['course_id'] = cid
                ret = class_eva_query(args)

                if ret[0]:
                    return ret[1], 200
                else:
                    return {"error": ret[1]}, 400
            except Exception as e:
                print(traceback.print_exc())
                return {"error": "wrong operation"}, 500

        return {"error": "unauthorized"}, 401
示例#12
0
    def post(self):
        self.post_parser.add_argument("uid",
                                      type=int,
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("token", required=True, location="form")
        self.post_parser.add_argument("title", required=True, location="form")
        self.post_parser.add_argument("location",
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("description",
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("contact",
                                      required=True,
                                      location="form")
        self.post_parser.add_argument("img_link",
                                      required=False,
                                      location="form")
        self.post_parser.add_argument("kind",
                                      type=int,
                                      required=True,
                                      location="form")

        args = self.post_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):
            try:
                # uid, title, location, description, contact, img_link, kind)
                ret = findlost_add(args['uid'], args['title'],
                                   args['location'], args['description'],
                                   args['contact'], args['img_link'],
                                   args['kind'])
                # print(ret)
                if ret[0]:
                    return {"status": "created", 'id': ret[1]}, 200
                else:
                    return {"error": ret[1]}, 400
            except Exception as e:
                print("error : ", repr(e))
                return {"error": "wrong operation"}, 500
        return {"error": "unauthorized"}, 401
    def delete(self):

        self.delete_parser.add_argument("uid", type=int, required=True, location="headers")
        self.delete_parser.add_argument("token", required=True, location="headers")
        self.delete_parser.add_argument("id", type=int, required=True, location="headers")

        args = self.delete_parser.parse_args()
        # 检查token
        if general_operation.check_token(args):
            print(args)
            try:
                ret = anonymous_delete(args)
                if ret[0]:
                    return ret[1],200
                return {"error": ret[2]}, ret[1]
            except Exception as e:
                print(traceback.print_exc())
                return {"error": repr(e)}, 500
        else:
            return {"error": "unauthorized"}, 401