Exemple #1
0
    def post(self, request, *args, **kwargs):
        form = self.form_class(data=request.POST)
        if form.is_valid():
            uuid_ = form.cleaned_data['strategy']
            req_body = form.cleaned_data["req_body"]
            history_data = form.cleaned_data['history_data'] or None

            client = get_redis_client()
            name = 'user_strategy:{}'.format(uuid_)
            d = client.hgetall(name)
            strategy = UserStrategy(d)
            strategy_day = int(d['strategy_day'])
            threshold = int(d['strategy_limit'])

            if not isinstance(req_body, list):
                req_body = [req_body]
            if history_data:
                func = strategy.get_callable()
                raw_results = [func(req, history_data) for req in req_body]
            else:
                func = strategy.get_callable_from_threshold_list(
                    [strategy_day, threshold])
                raw_results = [func(req) for req in req_body]
            results = [u"命中" if i else u"不命中" for i in raw_results]
            if len(results) == 1:
                results = results[0]
            data = dict(
                state=True,
                data=results,
            )
        else:
            data = dict(state=False, error=errors_to_dict(form.errors))
        return self.render_json_response(data)
Exemple #2
0
    def post(self, request, *args, **kwargs):
        form = MenuStrategyTestForm(data=request.POST)
        if form.is_valid():
            uuid_ = request.POST.get('strategy')
            req_body = form.cleaned_data['req_body']

            results = []
            client = get_redis_client()
            name = 'strategy_menu:{}'.format(uuid_)
            d = client.hgetall(name)
            strategy = MenuStrategy(d)
            func = strategy.get_callable()

            if not isinstance(req_body, list):
                req_body = [req_body]
            for req in req_body:
                res = func(req)
                results.append(u"命中" if res else u"不命中")
            if len(results) == 1:
                results = results[0]

            data = dict(state=True, data=results)
        else:
            data = dict(state=False, error=errors_to_dict(form.errors))
        return self.render_json_response(data)
Exemple #3
0
    def post(self, request, *args, **kwargs):
        form = self.form_class(data=request.POST)
        if form.is_valid():
            uuid_ = request.POST.get('strategy')
            req_body = request.POST.get('req_body', '')
            req_body = json.loads(req_body)
            client = get_redis_client()
            name = 'bool_strategy:{}'.format(uuid_)
            d = client.hgetall(name)
            strategy = BoolStrategy(d)

            func = strategy.get_callable()
            if not isinstance(req_body, list):
                req_body = [req_body]
            results = []
            for req in req_body:
                resp = func(req)
                if resp:
                    results.append(u"命中")
                else:
                    results.append(u"不命中")
            if len(results) == 1:
                results = results[0]
            data = dict(state=True, data=results)
        else:
            data = dict(state=False, error=errors_to_dict(form.errors))
        return self.render_json_response(data)
Exemple #4
0
 def post(self, request, *args, **kwargs):
     form = self.form_cls(data=request.POST, request=request)
     if form.is_valid():
         msg = form.save()
         data = dict(state=True, msg=msg)
     else:
         data = dict(state=False, error=errors_to_dict(form.errors))
     return self.render_json_response(data)
Exemple #5
0
 def post(self, request, *args, **kwargs):
     form = self.form_class(data=request.POST, request=request)
     if form.is_valid():
         uuid_ = form.save()
         data = dict(uuid=uuid_,
                     state=True,
                     redirect_url=reverse(self.redirect_view_name))
     else:
         data = dict(state=False, error=errors_to_dict(form.errors))
     return self.render_json_response(data)
Exemple #6
0
 def post(self, request, *args, **kwargs):
     form = self.form_class(data=request.POST, request=request)
     if form.is_valid():
         rule_id, rule_uuid = form.save()
         data = dict(rule_id=rule_id,
                     uuid=rule_uuid,
                     state=True,
                     redirect_url=reverse("rule:list"))
     else:
         data = dict(state=False, error=errors_to_dict(form.errors))
     return self.render_json_response(data)
Exemple #7
0
 def post(self, request, *args):
     form = MenuEventCreateForm(data=request.POST, request=request)
     if form.is_valid():
         event_code = form.save()
         data = dict(
             event_code=event_code,
             state=True,
             msg="ok"
         )
     else:
         data = dict(
             state=False,
             error=errors_to_dict(form.errors)
         )
     return self.render_json_response(data)
Exemple #8
0
 def post(self, request):
     form = self.post_form(data=request.POST)
     if form.is_valid():
         form.save()
         return self.render_json_response({
             'state':
             True,
             'redirect_url':
             reverse('permissions:users')
         })
     else:
         return self.render_json_response({
             'state':
             False,
             'error':
             errors_to_dict(form.errors)
         })
Exemple #9
0
 def post(self, request, *args):
     form = MenuCreateForm(data=request.POST, request=request)
     if form.is_valid():
         error_datas = form.save()
         if error_datas:
             data = dict(
                 state=False,
                 error={"value": [u"以下数据添加失败:{0}".format(error_datas)]}
             )
         else:
             data = dict(
                 state=True,
                 msg="ok"
             )
     else:
         data = dict(
             state=False,
             error=errors_to_dict(form.errors)
         )
     return self.render_json_response(data)
Exemple #10
0
 def post(self, request, *args, **kwargs):
     form = self.form_class(data=request.POST)
     if form.is_valid():
         uuid_ = request.POST.get('rule')
         name = "rule:{}".format(uuid_)
         conn = get_redis_client()
         id_ = conn.hget(name, 'id')
         req_body = form.cleaned_data['req_body']
         if not isinstance(req_body, list):
             req_body = [req_body]
         from risk_models.rule import calculate_rule
         results = []
         for req in req_body:
             result, _ = calculate_rule(id_, req)
             results.append(CONTROL_MAP[result])
         if len(results) == 1:
             results = results[0]
         data = dict(state=True, data=results)
     else:
         data = dict(state=False, error=errors_to_dict(form.errors))
     return self.render_json_response(data)