Exemple #1
0
 def patch(self, request):
     form, error = JsonParser(
         Argument('id', type=int, help='缺少必要参数'),
         Argument('value', type=str, default=''),
         Argument('is_public', type=bool, help='缺少必要参数'),
         Argument('desc', required=False)
     ).parse(request.body)
     if error is None:
         form.value = form.value.strip()
         config = Config.objects.filter(pk=form.id).first()
         if not config:
             return json_response(error='未找到指定对象')
         config.desc = form.desc
         config.is_public = form.is_public
         if config.value != form.value:
             old_value = config.value
             config.value = form.value
             config.updated_at = human_datetime()
             config.updated_by = request.user
             ConfigHistory.objects.create(
                 action='2',
                 old_value=old_value,
                 **config.to_dict(excludes=('id',)))
         config.save()
     return json_response(error=error)
Exemple #2
0
 def post(self, request):
     form, error = JsonParser(
         Argument('o_id', type=int, help='缺少必要参数'),
         Argument('type',
                  filter=lambda x: x in dict(Config.TYPES),
                  help='缺少必要参数'),
         Argument('envs', type=list, filter=lambda x: len(x), help='请选择环境'),
         Argument('key', help='请输入Key'),
         Argument('is_public', type=bool, help='缺少必要参数'),
         Argument('value', type=str, default=''),
         Argument('desc', required=False)).parse(request.body)
     if error is None:
         form.value = form.value.strip()
         form.updated_at = human_datetime()
         form.updated_by = request.user
         envs = form.pop('envs')
         for env_id in envs:
             cf = Config.objects.filter(o_id=form.o_id,
                                        type=form.type,
                                        env_id=env_id,
                                        key=form.key).first()
             if cf:
                 raise Exception(f'{cf.env.name} 中已存在该Key')
             Config.objects.create(env_id=env_id, **form)
             ConfigHistory.objects.create(action='1', env_id=env_id, **form)
     return json_response(error=error)