feat: base- 基于项目code返回或更改配置信息

This commit is contained in:
caoqianming 2024-01-10 10:11:43 +08:00
parent 5856965d28
commit 2cb4ca00d3
1 changed files with 35 additions and 4 deletions

View File

@ -40,7 +40,7 @@ from rest_framework.viewsets import GenericViewSet
from cron_descriptor import get_description
import locale
from drf_yasg.utils import swagger_auto_schema
from server.settings import get_sysconfig, update_sysconfig
from server.settings import get_sysconfig, update_sysconfig, update_dict
# logger.info('请求成功! response_code:{}response_headers:{}
# response_body:{}'.format(response_code, response_headers, response_body[:251]))
@ -692,6 +692,15 @@ class SysBaseConfigView(APIView):
获取系统基本信息
"""
project_code = request.query_params.get('project_code', '')
if project_code:
from apps.develop.models import Project
try:
project = Project.objects.get(code=project_code)
config = project.config_json
except Project.DoesNotExist:
raise ParseError('项目不存在')
else:
config = get_sysconfig()
base_dict = {key: config[key]
for key in self.read_keys if key in config}
@ -710,7 +719,17 @@ class SysConfigView(MyLoggingMixin, APIView):
reload = False
if request.query_params.get('reload', None):
reload = True
return Response(get_sysconfig(reload=reload))
project_code = request.query_params.get('project_code', '')
if project_code:
from apps.develop.models import Project
try:
project = Project.objects.get(code=project_code)
config = project.config_json
except Project.DoesNotExist:
raise ParseError('项目不存在')
else:
config = get_sysconfig(reload=reload)
return Response(config)
@swagger_auto_schema(request_body=Serializer)
def put(self, request, format=None):
@ -720,5 +739,17 @@ class SysConfigView(MyLoggingMixin, APIView):
修改config json
"""
data = request.data
project_code = data.get('project_code', '')
if project_code:
from apps.develop.models import Project
try:
project = Project.objects.get(code=project_code)
config = project.config_json
new_config = update_dict(config, data)
project.config_json = new_config
project.save()
except Project.DoesNotExist:
raise ParseError('项目不存在')
else:
update_sysconfig(data)
return Response()