A api update

pull/22/head
雷二猛 2019-12-08 17:57:03 +08:00
parent c2685a35fe
commit 5235c5a37e
2 changed files with 20 additions and 2 deletions

View File

@ -6,6 +6,7 @@ urlpatterns = [
path('', ConfigView.as_view()),
path('parse/json/', parse_json),
path('parse/text/', parse_text),
path('diff/', post_diff),
path('environment/', EnvironmentView.as_view()),
path('service/', ServiceView.as_view()),
path('history/', HistoryView.as_view()),

View File

@ -156,12 +156,12 @@ class ConfigView(View):
class HistoryView(View):
def post(self, request):
form, error = JsonParser(
Argument('id', type=int, help='缺少必要参数'),
Argument('o_id', type=int, help='缺少必要参数'),
Argument('env_id', type=int, help='缺少必要参数'),
Argument('type', filter=lambda x: x in dict(Config.TYPES), help='缺少必要参数')
).parse(request.body)
if error is None:
form.o_id, data = form.pop('id'), []
data = []
for item in ConfigHistory.objects.filter(**form).annotate(update_user=F('updated_by__nickname')):
tmp = item.to_dict()
tmp['action_alias'] = item.get_action_display()
@ -171,6 +171,23 @@ class HistoryView(View):
return json_response(error=error)
def post_diff(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='缺少必要参数'),
).parse(request.body)
if error is None:
data, form.env_id__in = {}, form.pop('envs')
for item in Config.objects.filter(**form).order_by('key'):
if item.key in data:
data[item.key][item.env_id] = item.value
else:
data[item.key] = {'key': item.key, item.env_id: item.value}
return json_response(list(data.values()))
return json_response(error=error)
def parse_json(request):
form, error = JsonParser(
Argument('o_id', type=int, help='缺少必要参数'),