コード例 #1
0
def upload():
    image = request.files.get('image', None)
    if not image:
        raise ParameterException(msg='没有找到图片')
    if image and allowed_file(image.filename):
        path = os.path.join(lin_config.get_config('oss.upload_folder'),
                            image.filename)
        image.save(path)
    else:
        raise ParameterException(msg='图片类型不允许或图片key不合法')
    return Success()
コード例 #2
0
 def add_model(cls, data, commit=True, *, throw=False):
     """添加模型"""
     if not data.get('name'):
         raise ParameterException(msg='要添加的数据中没有name属性')
     model = cls.query.filter_by(name=data.get('name')).first()
     if model is not None:
         if not throw:
             return False
         else:
             raise ParameterException(msg='相关资源已存在')
     model = cls.create(**data, commit=commit)
     return model
コード例 #3
0
ファイル: cart.py プロジェクト: TianJin85/mall
def list_cart():
    userId = request.args["userId"]
    if userId:
        cart = ShoppingCart.list_cart(userId=userId)
        return Result(data=cart)
    else:
        return ParameterException(msg="用户id不能为空")
コード例 #4
0
def address_list():
    userId = request.args["userId"]
    if userId:
        address = Address.address_list(userId=userId)
        return Result(data=address)
    else:
        return ParameterException(msg="请传入用户id")
コード例 #5
0
def search_info():
    form = HistoryInfoForm().validate_for_api()
    keyword = request.args.get('keyword', default=None, type=str)
    if keyword is None or '':
        raise ParameterException(msg='搜索关键字不可为空')
    start, count = paginate()
    # logs = Log.query.filter(Log.message.like(f'%{keyword}%'))
    # res = OpenVPNLogInfo.query.filter(OpenVPNLogInfo.common_name.like((f'%{keyword}%')))
    res = OpenVPNLogInfo.query.filter(
        OpenVPNLogInfo.remote_ip.like(f"%{keyword}%"))
    if form.username.data:
        res = OpenVPNLogInfo.query.filter(
            OpenVPNLogInfo.common_name == form.username.data)
    if form.start.data and form.end.data:
        res = res.filter(
            OpenVPNLogInfo.starting_time.between(form.start.data,
                                                 form.end.data))
    total = res.count()
    res = res.order_by(
        text('starting_time desc')).offset(start).limit(count).all()
    total_page = math.ceil(total / count)
    page = get_page_from_query()
    if not res:
        res = []
    return json_res(page=page,
                    count=count,
                    total=total,
                    items=res,
                    total_page=total_page)
コード例 #6
0
ファイル: case.py プロジェクト: guojiaxing1995/easy-test
    def edit_case(self, name, info, url, method, submit, header, data, deal,
                  condition, expect, assertion, type):

        old_case = Case(self.case_group, self.name, self.info, self.url,
                        self.method, self.submit, self.header, self.data,
                        self.deal, self.condition, self.expect, self.assertion,
                        self.type)
        old_case.id = self.id

        if self.name != name:
            if Case.query.filter_by(name=name,
                                    case_group=self.case_group,
                                    delete_time=None).first():
                raise ParameterException(msg='当前组已存在同名用例,请更改用例名称')
        # 用例名称暂时不允许修改
        # self.name = name
        self.info = info
        self.url = url
        self.method = CaseMethodEnum(method)
        self.submit = CaseSubmitEnum(submit)
        self.header = header
        self.data = data
        self.deal = CaseDealEnum(deal)
        self.condition = condition
        self.expect = expect
        self.assertion = CaseAssertEnum(assertion)
        self.type = CaseTypeEnum(type)
        self.update_user = get_current_user().id
        db.session.commit()

        self.edit_log(old_case)
コード例 #7
0
ファイル: cart.py プロジェクト: TianJin85/mall
def remove_cart():
    id = request.args["id"]
    if id:
        ShoppingCart.remove_cart(id)
        return Success(msg="移除成功")
    else:
        return ParameterException(msg="请传入商品id")
コード例 #8
0
    def new_group(cls, form):
        group = CaseGroup.query.filter_by(name=form.name.data,
                                          delete_time=None).first()
        if group is not None:
            raise ParameterException(msg='分组已存在')
        # 新增分组的时候同时新增可查看当前用例组的人员。当出现问题时进行回滚,人员和分组都不插入
        try:
            group = CaseGroup()
            group.name = form.name.data
            group.info = form.info.data
            db.session.add(group)
            db.session.flush()
            if form.users.data:
                current_app.logger.info(group.id)
                for user in form.users.data:
                    user_auth = UserAuth()
                    user_auth.user_id = user
                    user_auth.auth_id = group.id
                    user_auth.type = UserAuthEnum.GROUP
                    db.session.add(user_auth)
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise UnknownException(msg='新增异常 数据已回滚')

        return True
コード例 #9
0
 def validate_content(self, field):
     category = Category.query.filter_by(delete_time=None,
                                         content=field.data,
                                         type=int(self.type.data)).first()
     if category:
         msg = '分类<' + str(field.data) + '>已存在'
         raise ParameterException(msg=msg)
コード例 #10
0
def address_delete():
    id = request.args["id"]
    if id:
        Address.delete_address(id=id)
        return Success(msg="删除成功")
    else:
        return ParameterException(msg="请传入地址id")
コード例 #11
0
ファイル: project.py プロジェクト: youaremylovemyy/easy-test
    def new_project(cls, form):
        project = cls.query.filter_by(name=form.name.data,
                                      delete_time=None).first()
        if project is not None:
            raise ParameterException(msg='工程已存在')
        # 新增分组的时候同时新增可查看当前用例组的人员。当出现问题时进行回滚,人员和分组都不插入
        try:
            project = Project()
            project.name = form.name.data
            project.server = form.server.data
            project.header = form.header.data
            project.info = form.info.data
            project.progress = 0
            project.type = ProjectTypeEnum(form.type.data)
            project.user = form.user.data
            project.running = False
            project.send_email = form.sendEmail.data
            project.email_strategy = EmailStrategyEnum(form.emailStrategy.data)
            project.copy_person = form.copyPerson.data
            db.session.add(project)
            db.session.flush()
            if form.users.data:
                for user in form.users.data:
                    user_auth = UserAuth()
                    user_auth.user_id = user
                    user_auth.auth_id = project.id
                    user_auth.type = UserAuthEnum.PROJECT
                    db.session.add(user_auth)
            db.session.commit()
        except Exception as e:
            db.session.rollback()
            raise UnknownException(msg='新增异常 数据已回滚')

        return True
コード例 #12
0
def paginate():
    _count = get_count_from_query()
    count = 15 if _count >= 15 else _count
    start = get_page_from_query() * count
    if start < 0 or count < 0:
        raise ParameterException()
    return start, count
コード例 #13
0
ファイル: case.py プロジェクト: guojiaxing1995/easy-test
 def new_case(self):
     if Case.query.filter_by(name=self.name,
                             case_group=self.case_group,
                             delete_time=None).first():
         raise ParameterException(msg='当前组已存在同名用例,请更改用例名称')
     db.session.add(self)
     db.session.commit()
コード例 #14
0
ファイル: cart.py プロジェクト: TianJin85/mall
def append_cart():
    data = eval(str(request.data, encoding='utf-8'))
    form = Append_Cart(ImmutableMultiDict(data))
    if form.validate():
        ShoppingCart.append_cart(form)
        return Success(msg="加入购物成功")
    else:
        return ParameterException(msg=form.errors)
コード例 #15
0
def wxlogin():
    form = WxLoginForm().validate_for_api()
    code = form.code.data
    res = request_wx_api(code)
    user = manager.find_user(openid=res['openid'])
    if user:
        raise ParameterException(msg='邮箱已被注册,请重新输入邮箱')
    wx_register_user(res)
    return 'success'
コード例 #16
0
ファイル: comment.py プロジェクト: zcxyun/snack-api-lin
 def add(cls, data, commit=True, *, throw=False):
     model = cls.query.filter_by(**data, soft=True).first()
     if model:
         if not throw:
             return False
         else:
             raise ParameterException(msg='相同内容已经评论过了')
     cls.create(**data, commit=commit)
     return True
コード例 #17
0
def post_file():
    files = request.files
    type=request.form.get("type")
    if not type or type not in typeRadio:
       raise ParameterException(msg={type: ["Not a valid choice"]})
    config = FILE[type]
    uploader = LocalUploader(files,config)
    ret = uploader.upload(type)
    return jsonify(ret)
コード例 #18
0
def get_ip_user():
    form = IPSearchForm().validate_for_api()
    command = ["/usr/local/bin/get_user_ip.sh", form.openvpn_ip.data]
    command = ' '.join(str(d) for d in command)
    value = remote_server.onetime_shell(command)
    if re.findall('没有', value):
        raise ParameterException(msg='Unregistered')
    else:
        return Success(msg=value)
コード例 #19
0
ファイル: banner_item.py プロジェクト: zcxyun/snack-api-lin
 def add_model(cls, data, commit=True, *, throw=False):
     model = cls.query.filter_by(**data).first()
     if model:
         if not throw:
             return False
         else:
             raise ParameterException(msg='相关横幅子项目已存在或已隐藏')
     cls.create(**data, commit=True)
     return True
コード例 #20
0
ファイル: utils.py プロジェクト: zcxyun/myblink-api-lin
def offset_limit():
    start = int(
        request.args.get('start', current_app.config.get('START_DEFAULT', 0)))
    count = int(
        request.args.get('count', current_app.config.get('COUNT_DEFAULT', 1)))
    count = 20 if count >= 20 else count
    if start < 0 or count < 0:
        raise ParameterException()
    return start, count
コード例 #21
0
def validate_some_cart_content():
    cart_contents = request.get_json()
    if cart_contents and type(cart_contents) == list:
        for cart_content in cart_contents:
            cc = CartContentOne(data=cart_content)
            valid = cc.validate()
            if not valid:
                raise ParameterException(msg=cc.errors)
    return cart_contents
コード例 #22
0
def amend():
    data = eval(str(request.data, encoding='utf-8'))
    form = AddressAmend(ImmutableMultiDict(data))

    if form.validate():
        Address.amend_default_address(form)
        return Success(msg="更改地址成功")
    else:
        return ParameterException(msg=form.errors)
コード例 #23
0
ファイル: product_forms.py プロジェクト: zcxyun/snack-api-lin
def validate_product_props():
    props = request.json.get('params', None)
    if props and type(props) == list:
        for prop in props:
            pp = ProductProp(data=prop)
            valid = pp.validate()
            if not valid:
                raise ParameterException(msg=pp.errors)
    return props
コード例 #24
0
ファイル: order_forms.py プロジェクト: zcxyun/snack-api-lin
def validate_place_order():
    products = request.get_json()
    if products and type(products) == list:
        for product in products:
            cc = OneProductOfOrder(data=product)
            valid = cc.validate()
            if not valid:
                raise ParameterException(msg=cc.errors)
        return products
コード例 #25
0
 def edit_model(cls, id, data, commit=True, *, throw=False):
     """编辑模型"""
     if not data.get('name'):
         raise ParameterException(msg='要更改的数据中没有name属性')
     model = cls.query.filter_by(name=data.get('name')).filter(
         cls.id != id).first()
     if model is not None:
         if not throw:
             return False
         else:
             raise ParameterException(msg='相同名称资源已存在')
     model = cls.query.filter_by(id=id, soft=True).first()
     if not model:
         if not throw:
             return False
         else:
             raise NotFound(msg='相关资源未添加或已隐藏')
     model.update(**data, commit=commit)
     return model
コード例 #26
0
ファイル: utils.py プロジェクト: junxian123/yushu
def paginate():
    count = int(request.args.get('count', current_app.config.get('COUNT_DEFAULT') if current_app.config.get(
        'COUNT_DEFAULT') else 1))
    start = int(request.args.get('page', current_app.config.get('PAGE_DEFAULT') if current_app.config.get(
        'PAGE_DEFAULT') else 0))
    count = 15 if count >= 15 else count
    start = start * count
    if start < 0 or count < 0:
        raise ParameterException()
    return start, count
コード例 #27
0
ファイル: comm.py プロジェクト: TianJin85/mall
def query_class():
    _type = request.args["type"]
    if _type:
        comm = Commodity.query_comm_type(_type=_type)
        for item in comm:
            setattr(item, "product", eval(getattr(item, "product")))
            setattr(item, "titleImg", eval(getattr(item, "titleImg")))
        return comm
    else:
        return ParameterException(msg="请传入商品类型")
コード例 #28
0
 def new_model(cls, data, *, err_msg=None):
     """添加短评"""
     model = cls.query.filter_by(**data, delete_time=None).first()
     if model is not None:
         if err_msg is None:
             return False
         else:
             raise ParameterException(msg=err_msg)
     cls.create(**data, commit=True)
     return True
コード例 #29
0
ファイル: user.py プロジェクト: vonfly/lin-cms-flask
def update():
    form = UpdateInfoForm().validate_for_api()
    user = get_current_user()
    if user.email != form.email.data:
        exists = manager.user_model.get(email=form.email.data)
        if exists:
            raise ParameterException(msg='邮箱已被注册,请重新输入邮箱')
    with db.auto_commit():
        user.email = form.email.data
    return Success(msg='操作成功')
コード例 #30
0
ファイル: case.py プロジェクト: guojiaxing1995/easy-test
    def case_debug(self):
        self.str_to_dict()
        # res = self.method_request()
        try:
            res = self.method_request()
        except Exception as e:
            current_app.logger.debug(e)
            raise ParameterException(msg='参数错误')
        result = self.get_result(res)

        return result