Exemplo n.º 1
0
 def get(self):
     try:
         self.parser.add_argument('page',
                                  type=int,
                                  help='The page must be int type',
                                  required=True)
         self.parser.add_argument('per_page',
                                  type=int,
                                  help='The per_page must be int type',
                                  required=True)
         data = self.parser.parse_args(
             strict=True)  # 获取传输的值/strict=True代表设置如果传以上未指定的参数主动报错
         page = data['page']
         per_page = data['per_page']
         if page < 1:
             return response("The page must be larger than 1", 400)
         users = User.query.paginate(page, per_page)
         if users:
             resp_data = {
                 "page": users.page,
                 "pages": users.pages,
                 "per_page": users.per_page,
                 "has_prev": users.has_prev,
                 "has_next": users.has_next,
                 "total": users.total,
                 'api_list': [i.to_json() for i in users.items]
             }
             return jsonify(response(resp_data))
         else:
             return response('user does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 2
0
 def get(self, report_id):
     try:
         report = Report.query.filter_by(id=report_id).first()
         if report:
             return jsonify(response(info=report.to_json()))
         else:
             return response('report does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 3
0
 def get(self, api_id):
     try:
         api_ = ApiModel.query.filter_by(id=api_id).first()
         if api_:
             return jsonify(response(api_.to_json()))
         else:
             return response('api does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 4
0
 def get(self, user_id):
     try:
         user = User.query.filter_by(id=user_id).first()
         if user:
             return jsonify(response(user.to_json()))
         else:
             return response('user does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 5
0
 def get(self):
     try:
         reports = Report.query.all()
         if reports:
             return jsonify(
                 response([result.to_json() for result in reports]))
         else:
             return response('reports does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 6
0
 def delete(self, user_id):
     try:
         # 直接物理删除数据
         flag = User.query.filter_by(id=user_id).delete()
         if flag:
             session_commit()
             return response(f"delete {user_id} successfully")
         else:
             return response(f'user {user_id} does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 7
0
 def delete(self, api_id):
     try:
         # 直接物理删除数据
         flag = ApiModel.query.filter_by(id=api_id).delete()
         session_commit()
         if flag:
             return response()
         else:
             return response(f'api {api_id}(id) does`t exists', 400)
     except Exception as e:
         return response(f'{e}', 500)
Exemplo n.º 8
0
 def get(self):
     info = {"name": self.fake.name(),
             "phone": self.fake.phone_number(),
             "id": self.fake.ssn(min_age=18, max_age=90),
             "email": self.fake.email(),
             "address": self.fake.address(),
             "credit_card": self.fake.credit_card_number(card_type=None),  # 卡号
             "postcode": self.fake.postcode(),
             }
     if info:
         return response(info)
     return response("获取信息失败,请重试!", 400)
Exemplo n.º 9
0
    def delete(self, report_id):
        try:
            flag = Report.query.filter_by(id=report_id).delete()
            msg = session_commit()
            if msg:
                return response(f"{msg}", 500)
            if flag:
                return response()
            else:
                return response(f'report {report_id}(id) does`t exists', 400)

        except Exception as e:
            return response(f"{e}", 500)
Exemplo n.º 10
0
 def post(self):
     data = request.get_json()
     print(data)
     not_exist_fields = get_not_exist_fields(data.keys(), Report)
     if not_exist_fields:
         return response(f"Unknown arguments: {not_exist_fields}", 404)
     new_report = Report(**data)
     msg = session_add(new_report)
     if msg:
         return response(f"{msg}", 500)
     else:
         return response("report add successfully at {0}".format(
             time.strftime("%Y-%m-%d %H:%M:%S")))
Exemplo n.º 11
0
 def post(self):
     """第一种,以文件流的方式"""
     data = request.files
     file = data.get("file")
     if not file:
         return response("Arguments file don`t exist!", 400)
     stream = file.stream
     filename = secure_filename(file.filename)
     file_path = os.path.join(run_config.UPLOAD_FOLDER, filename)
     if self.allowed_file(filename):
         with open(file_path, "wb") as out:
             out.write(stream.read())
         return response({"path": file_path})
     return response(f"Allowed file types are: {run_config.ALLOWED_EXTENSIONS}", 400)
Exemplo n.º 12
0
 def post(self):
     user_data = request.get_json()
     not_exist_fields = get_not_exist_fields(user_data.keys(), User)
     if not_exist_fields:
         return response(f"Unknown arguments: {not_exist_fields}", 404)
     form = RegisterForm(data=user_data)
     user_data['password'] = User.hash_password(user_data['password'])
     if form.validate():
         new_user = User(**user_data)
         session_add(new_user)
         msg = session_add(new_user)
         if msg:
             return response(f"{msg}", 500)
         else:
             return response("user create successfully")
     return response(form.errors, 400)
Exemplo n.º 13
0
 def post(self):
     """读取本地excel to json"""
     if 'excel' in request.files:
         # 获取上传的文件
         filename = request.files['excel'].filename
         # 获取文件的扩展名和内容
         extension = filename.split(".")[-1]
         content = request.files['excel'].read()
         sheet = pyexcel.get_sheet(file_type=extension, file_content=content)
         # 将第一行当做headers
         sheet.name_columns_by_row(0)
         # sheet.save_to_database()
         # 返回json
         return response({"result": sheet.dict})
     else:
         return response("Arguments excel file don`t exist!", 400)
Exemplo n.º 14
0
 def post(self):
     api_data = request.get_json()
     not_exist_fields = get_not_exist_fields(api_data.keys(), ApiModel)
     if not_exist_fields:
         return response(f"Unknown arguments: {not_exist_fields}", 404)
     form = ApiForm(data=api_data)
     if form.validate():
         new_api = ApiModel(**api_data)
         session_add(new_api)
         msg = session_add(new_api)
         if msg:
             return response(f"{msg}", 500)
         else:
             return response("api add successfully at {0}".format(
                 time.strftime("%Y-%m-%d %H:%M:%S")))
     return response(form.errors, 400)
Exemplo n.º 15
0
 def put(self, api_id):
     api_data = request.get_json()
     not_exist_fields = get_not_exist_fields(api_data.keys(), ApiModel)
     if not_exist_fields:
         return response(f"Unknown arguments: {not_exist_fields}", 404)
     api_ = ApiModel.query.filter_by(id=api_id).first()
     if not api_:
         return response('api does`t exists', 400)
     # 直接修改字段is_active,逻辑删除
     # api_.from_json(**{"is_active": 0})
     api_data['modified_at'] = datetime.now()
     api_.from_json(**api_data)
     msg = session_commit()
     if not msg:
         return response()
     else:
         return response(f"{msg}", 400)
Exemplo n.º 16
0
def search():
    db = g.restaurant_name
    try:
        status, data = search_food(request.args, db)
        if not status:
            return error_response(str(data))
        return response(True, 'Foods search successful', data)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 17
0
 def put(self, user_id):
     data = request.get_json()
     try:
         not_exist_fields = get_not_exist_fields(data.keys(), User)
         if not_exist_fields:
             return response(f"Unknown arguments: {not_exist_fields}", 404)
         user = User.query.filter_by(id=user_id).first()
         if not user:
             return response(f'user {user_id} does`t exists', 400)
         # 直接修改字段is_active,逻辑删除
         # user.from_json(**{"is_active": 0})
         user.from_json(**data)
         user.modified_at = datetime.now()
         msg = session_commit()
         if not msg:
             return response()
         else:
             return response(f"{msg}", 400)
     except Exception as e:
         return response(f"{e}", 500)
Exemplo n.º 18
0
def view_orders():
    db = g.restaurant_name
    status, missing_field = validate_body(request.args, ['phone'])
    if not status:
        return error_response(f'{missing_field} is missing from query params')
    try:
        status, res = view_individual_order(request.args, db)
        if not status:
            return error_response(str(res))
        return response(True, 'Your Orders', res)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 19
0
def delete():
    db = g.restaurant_name
    food_id = request.args.get('id')
    if not food_id:
        return error_response('id is required')
    try:
        status, data = delete_food(food_id, db)
        if not status:
            return error_response(str(data))
        return response(True, 'Food deleted successfully', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 20
0
def create_restaurant():
    if g.restaurant_name:
        return error_response('Invalid route', 'error', 'RO', 404)
    body = request.get_json()
    if 'name' not in body:
        return error_response("Field 'name' is required")
    try:
        create_restaurant_domain(body['name'])
    except Exception as err:
        return error_response(str(err))
    domain = f'{body["name"]}.eatie.com'
    return response(True, f'{domain} created successfully', None)
Exemplo n.º 21
0
def update():
    db = g.restaurant_name
    body = request.get_json()
    status, missing_field = validate_body(body, ['id'])
    if not status:
        return error_response(f'{missing_field} is required')
    try:
        status, data = update_food(body, db)
        if not status:
            return error_response(str(data))
        return response(True, 'Food updated successfully', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 22
0
def cancel():
    body = request.get_json()
    db = g.restaurant_name
    status, missing_field = validate_body(body, ['phone'])
    if not status:
        return error_response(f'{missing_field} is required')
    try:
        status, res = cancel_orders(body, db)
        if not status:
            return error_response(str(res))
        return response(True, 'Orders canceled successfully', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 23
0
def order():
    db = g.restaurant_name
    body = request.get_json()
    status, missing_field = validate_body(body, ['phone', 'food_id'])
    if not status:
        return error_response(f'{missing_field} is required')
    try:
        status, res = create_order(body, db)
        if not status:
            return error_response(str(res))
        return response(True, 'Order created successfully', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 24
0
def deliver():
    body = request.get_json()
    db = g.restaurant_name
    status, missing_field = validate_body(body, ['phone'])
    if not status:
        return error_response(f'{missing_field} is required')
    try:
        status, res = deliver_orders(body, db)
        if not status:
            return error_response(str(res))
        return response(True, 'Orders status updated', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 25
0
def create():
    body = request.get_json()
    db = g.restaurant_name
    status, missing_field = validate_body(body,
                                          ['name', 'picture_url', 'price'])
    if not status:
        return error_response(f'{missing_field} is required')
    try:
        status, res = insert_food(body, db)
        if not status:
            return error_response(str(res))
        return response(True, 'Food created successfully', None)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 26
0
 def post(self):
     user_data = request.get_json()
     not_exist_fields = get_not_exist_fields(user_data.keys(), User)
     if not_exist_fields:
         return response(f"Unknown arguments: {not_exist_fields}", 404)
     form = LoginForm(data=user_data)
     if form.validate():
         user = form.get_user()
         token = user.generate_auth_token()
         user_info = user.to_json()
         user_info.update({'token': token.decode('ascii')})
         # login_user(user, remember=form.remember.data)
         return jsonify({'status': 'success', 'data': user_info})
     return {'status': 'error', 'message': form.errors}, 404
Exemplo n.º 27
0
def view():
    args = request.args
    db = g.restaurant_name
    try:
        if not args:
            status, data = all_orders(db)
        elif 'phone' in args:
            status, data = view_individual_order(args, db)
        else:
            return error_response(
                'phone should be present in the query params')
        if not status:
            return error_response(str(data))
        return response(True, 'Success', data)
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 28
0
def signin_staff():
    body = request.get_json()
    db = g.restaurant_name
    status, missing_field = validate_body(body, ['username', 'password'])
    if not status:
        return error_response(f'{missing_field} missing')
    try:
        status, data = login_staff(body, db)
        if not status:
            raise Exception(str(data))
        token = encode_jwt({'name': data['name'], 'restaurant': db})
        return response(True, 'Staff login successful', {
            'token': token,
            'restaurant': db
        })
    except Exception as err:
        return error_response(str(err))
Exemplo n.º 29
0
 def get(self):
     try:
         # 联表查询
         # 左外连接设置 isouter=True 或者直接使用 outerjoin
         query = db.session.query(User.username, ApiModel.url, ApiModel.id,
                                  ApiModel.status, ApiModel.name, ApiModel.created_at,
                                  ApiModel.description, ApiModel.body, ApiModel.header,
                                  ApiModel.imp, ApiModel.project, ApiModel.method, ApiModel.tags). \
             outerjoin(User, ApiModel.user_id == User.id)  # .join(Tag, ApiModel.id == Tag.api_id, isouter=True)
         # print([dict(zip(result.keys(), result)) for result in results])
         self.parser.add_argument('page',
                                  type=int,
                                  help='The page must be int type',
                                  required=True)
         self.parser.add_argument('per_page',
                                  type=int,
                                  help='The per_page must be int type',
                                  required=True)
         self.parser.add_argument('sort',
                                  type=str,
                                  help='The sort must be string type')
         self.parser.add_argument('name',
                                  type=str,
                                  help='The name must be string type')
         data = self.parser.parse_args(
             strict=True)  # 获取传输的值/strict=True代表设置如果传以上未指定的参数主动报错
         page = data['page']
         per_page = data['per_page']
         sort = data.get('sort', None)
         name = data.get('name', None)
         if page < 1:
             return response("The page must be larger than 1", 400)
         if sort:
             apis = query.filter(ApiModel.is_active == 1).order_by(
                 sort_id(sort, ApiModel)).paginate(page, per_page)
         else:
             apis = query.filter(ApiModel.is_active == 1).paginate(
                 page, per_page)
         if name:
             apis = query.filter(ApiModel.is_active == 1,
                                 ApiModel.name == name).order_by(
                                     sort_id(sort, ApiModel)).paginate(
                                         page, per_page)
         if apis:
             resp_data = {
                 "page":
                 apis.page,
                 "pages":
                 apis.pages,
                 "per_page":
                 apis.per_page,
                 "has_prev":
                 apis.has_prev,
                 "has_next":
                 apis.has_next,
                 "total":
                 apis.total,
                 'api_list': [
                     dict(zip(result.keys(), result))
                     for result in apis.items
                 ]
             }
             return jsonify(response(resp_data))
         else:
             return response('api does`t exists', 400)
     except Exception as e:
         return response(f"{e}", 500)