mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 10:12:51 +00:00
feat: consolidate module and tool views by removing redundant classes and updating API endpoints
This commit is contained in:
parent
39841cb344
commit
a8cda7d4a4
|
|
@ -4,7 +4,6 @@ from . import views
|
|||
|
||||
app_name = "module"
|
||||
urlpatterns = [
|
||||
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.Create.as_view()),
|
||||
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleTreeView.as_view()),
|
||||
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.as_view()),
|
||||
path('workspace/<str:workspace_id>/<str:source>/module/<str:module_id>', views.ModuleView.Operate.as_view()),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -12,24 +12,36 @@ from modules.serializers.module import ModuleSerializer, ModuleTreeSerializer
|
|||
|
||||
|
||||
class ModuleView(APIView):
|
||||
class Create(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(methods=['POST'],
|
||||
description=_('Create module'),
|
||||
operation_id=_('Create module'),
|
||||
parameters=ModuleCreateAPI.get_parameters(),
|
||||
request=ModuleCreateAPI.get_request(),
|
||||
responses=ModuleCreateAPI.get_response(),
|
||||
tags=[_('Module')])
|
||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
||||
def post(self, request: Request, workspace_id: str, source: str):
|
||||
return result.success(ModuleSerializer.Create(
|
||||
data={'user_id': request.user.id,
|
||||
'source': source,
|
||||
'workspace_id': workspace_id}
|
||||
).insert(request.data))
|
||||
@extend_schema(methods=['POST'],
|
||||
description=_('Create module'),
|
||||
operation_id=_('Create module'),
|
||||
parameters=ModuleCreateAPI.get_parameters(),
|
||||
request=ModuleCreateAPI.get_request(),
|
||||
responses=ModuleCreateAPI.get_response(),
|
||||
tags=[_('Module')])
|
||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
||||
def post(self, request: Request, workspace_id: str, source: str):
|
||||
return result.success(ModuleSerializer.Create(
|
||||
data={'user_id': request.user.id,
|
||||
'source': source,
|
||||
'workspace_id': workspace_id}
|
||||
).insert(request.data))
|
||||
|
||||
@extend_schema(methods=['GET'],
|
||||
description=_('Get module tree'),
|
||||
operation_id=_('Get module tree'),
|
||||
parameters=ModuleTreeReadAPI.get_parameters(),
|
||||
responses=ModuleTreeReadAPI.get_response(),
|
||||
tags=[_('Module')])
|
||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
||||
def get(self, request: Request, workspace_id: str, source: str):
|
||||
return result.success(ModuleTreeSerializer(
|
||||
data={'workspace_id': workspace_id, 'source': source}
|
||||
).get_module_tree(request.query_params.get('name')))
|
||||
|
||||
class Operate(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
|
@ -73,20 +85,3 @@ class ModuleView(APIView):
|
|||
return result.success(ModuleSerializer.Operate(
|
||||
data={'id': module_id, 'workspace_id': workspace_id, 'source': source}
|
||||
).delete())
|
||||
|
||||
|
||||
class ModuleTreeView(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(methods=['GET'],
|
||||
description=_('Get module tree'),
|
||||
operation_id=_('Get module tree'),
|
||||
parameters=ModuleTreeReadAPI.get_parameters(),
|
||||
responses=ModuleTreeReadAPI.get_response(),
|
||||
tags=[_('Module')])
|
||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
|
||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
||||
def get(self, request: Request, workspace_id: str, source: str):
|
||||
return result.success(ModuleTreeSerializer(
|
||||
data={'workspace_id': workspace_id, 'source': source}
|
||||
).get_module_tree(request.query_params.get('name')))
|
||||
|
|
|
|||
|
|
@ -88,6 +88,6 @@ class ToolTreeReadAPI(APIMixin):
|
|||
description="模块id",
|
||||
type=OpenApiTypes.STR,
|
||||
location='query',
|
||||
required=True,
|
||||
required=False,
|
||||
)
|
||||
]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ from . import views
|
|||
|
||||
app_name = "tool"
|
||||
urlpatterns = [
|
||||
path('workspace/<str:workspace_id>/tool', views.ToolView.Create.as_view()),
|
||||
path('workspace/<str:workspace_id>/tool', views.ToolTreeView.as_view()),
|
||||
path('workspace/<str:workspace_id>/tool', views.ToolView.as_view()),
|
||||
path('workspace/<str:workspace_id>/tool/<str:tool_id>', views.ToolView.Operate.as_view()),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -12,21 +12,32 @@ from tools.serializers.tool import ToolSerializer, ToolTreeSerializer
|
|||
|
||||
|
||||
class ToolView(APIView):
|
||||
class Create(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(methods=['POST'],
|
||||
description=_('Create tool'),
|
||||
operation_id=_('Create tool'),
|
||||
parameters=ToolCreateAPI.get_parameters(),
|
||||
request=ToolCreateAPI.get_request(),
|
||||
responses=ToolCreateAPI.get_response(),
|
||||
tags=[_('Tool')])
|
||||
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
|
||||
def post(self, request: Request, workspace_id: str):
|
||||
return result.success(ToolSerializer.Create(
|
||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||
).insert(request.data))
|
||||
@extend_schema(methods=['POST'],
|
||||
description=_('Create tool'),
|
||||
operation_id=_('Create tool'),
|
||||
parameters=ToolCreateAPI.get_parameters(),
|
||||
request=ToolCreateAPI.get_request(),
|
||||
responses=ToolCreateAPI.get_response(),
|
||||
tags=[_('Tool')])
|
||||
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
|
||||
def post(self, request: Request, workspace_id: str):
|
||||
return result.success(ToolSerializer.Create(
|
||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||
).insert(request.data))
|
||||
|
||||
@extend_schema(methods=['GET'],
|
||||
description=_('Get tool by module'),
|
||||
operation_id=_('Get tool by module'),
|
||||
parameters=ToolTreeReadAPI.get_parameters(),
|
||||
responses=ToolTreeReadAPI.get_response(),
|
||||
tags=[_('Tool')])
|
||||
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
|
||||
def get(self, request: Request, workspace_id: str):
|
||||
return result.success(ToolTreeSerializer(
|
||||
data={'workspace_id': workspace_id}
|
||||
).get_tools(request.query_params.get('module_id')))
|
||||
|
||||
class Operate(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
|
@ -69,17 +80,3 @@ class ToolView(APIView):
|
|||
).delete())
|
||||
|
||||
|
||||
class ToolTreeView(APIView):
|
||||
authentication_classes = [TokenAuth]
|
||||
|
||||
@extend_schema(methods=['GET'],
|
||||
description=_('Get tool by module'),
|
||||
operation_id=_('Get tool by module'),
|
||||
parameters=ToolTreeReadAPI.get_parameters(),
|
||||
responses=ToolTreeReadAPI.get_response(),
|
||||
tags=[_('Tool')])
|
||||
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
|
||||
def get(self, request: Request, workspace_id: str):
|
||||
return result.success(ToolTreeSerializer(
|
||||
data={'workspace_id': workspace_id}
|
||||
).get_tools(request.query_params.get('module_id')))
|
||||
|
|
|
|||
Loading…
Reference in New Issue