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"
|
app_name = "module"
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.Create.as_view()),
|
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.as_view()),
|
||||||
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleTreeView.as_view()),
|
|
||||||
path('workspace/<str:workspace_id>/<str:source>/module/<str:module_id>', views.ModuleView.Operate.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 ModuleView(APIView):
|
||||||
class Create(APIView):
|
authentication_classes = [TokenAuth]
|
||||||
authentication_classes = [TokenAuth]
|
|
||||||
|
|
||||||
@extend_schema(methods=['POST'],
|
@extend_schema(methods=['POST'],
|
||||||
description=_('Create module'),
|
description=_('Create module'),
|
||||||
operation_id=_('Create module'),
|
operation_id=_('Create module'),
|
||||||
parameters=ModuleCreateAPI.get_parameters(),
|
parameters=ModuleCreateAPI.get_parameters(),
|
||||||
request=ModuleCreateAPI.get_request(),
|
request=ModuleCreateAPI.get_request(),
|
||||||
responses=ModuleCreateAPI.get_response(),
|
responses=ModuleCreateAPI.get_response(),
|
||||||
tags=[_('Module')])
|
tags=[_('Module')])
|
||||||
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
|
||||||
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
|
||||||
def post(self, request: Request, workspace_id: str, source: str):
|
def post(self, request: Request, workspace_id: str, source: str):
|
||||||
return result.success(ModuleSerializer.Create(
|
return result.success(ModuleSerializer.Create(
|
||||||
data={'user_id': request.user.id,
|
data={'user_id': request.user.id,
|
||||||
'source': source,
|
'source': source,
|
||||||
'workspace_id': workspace_id}
|
'workspace_id': workspace_id}
|
||||||
).insert(request.data))
|
).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):
|
class Operate(APIView):
|
||||||
authentication_classes = [TokenAuth]
|
authentication_classes = [TokenAuth]
|
||||||
@ -73,20 +85,3 @@ class ModuleView(APIView):
|
|||||||
return result.success(ModuleSerializer.Operate(
|
return result.success(ModuleSerializer.Operate(
|
||||||
data={'id': module_id, 'workspace_id': workspace_id, 'source': source}
|
data={'id': module_id, 'workspace_id': workspace_id, 'source': source}
|
||||||
).delete())
|
).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",
|
description="模块id",
|
||||||
type=OpenApiTypes.STR,
|
type=OpenApiTypes.STR,
|
||||||
location='query',
|
location='query',
|
||||||
required=True,
|
required=False,
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
|
|||||||
@ -4,7 +4,6 @@ from . import views
|
|||||||
|
|
||||||
app_name = "tool"
|
app_name = "tool"
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path('workspace/<str:workspace_id>/tool', views.ToolView.Create.as_view()),
|
path('workspace/<str:workspace_id>/tool', views.ToolView.as_view()),
|
||||||
path('workspace/<str:workspace_id>/tool', views.ToolTreeView.as_view()),
|
|
||||||
path('workspace/<str:workspace_id>/tool/<str:tool_id>', views.ToolView.Operate.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 ToolView(APIView):
|
||||||
class Create(APIView):
|
authentication_classes = [TokenAuth]
|
||||||
authentication_classes = [TokenAuth]
|
|
||||||
|
|
||||||
@extend_schema(methods=['POST'],
|
@extend_schema(methods=['POST'],
|
||||||
description=_('Create tool'),
|
description=_('Create tool'),
|
||||||
operation_id=_('Create tool'),
|
operation_id=_('Create tool'),
|
||||||
parameters=ToolCreateAPI.get_parameters(),
|
parameters=ToolCreateAPI.get_parameters(),
|
||||||
request=ToolCreateAPI.get_request(),
|
request=ToolCreateAPI.get_request(),
|
||||||
responses=ToolCreateAPI.get_response(),
|
responses=ToolCreateAPI.get_response(),
|
||||||
tags=[_('Tool')])
|
tags=[_('Tool')])
|
||||||
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
|
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
|
||||||
def post(self, request: Request, workspace_id: str):
|
def post(self, request: Request, workspace_id: str):
|
||||||
return result.success(ToolSerializer.Create(
|
return result.success(ToolSerializer.Create(
|
||||||
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
data={'user_id': request.user.id, 'workspace_id': workspace_id}
|
||||||
).insert(request.data))
|
).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):
|
class Operate(APIView):
|
||||||
authentication_classes = [TokenAuth]
|
authentication_classes = [TokenAuth]
|
||||||
@ -69,17 +80,3 @@ class ToolView(APIView):
|
|||||||
).delete())
|
).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
Block a user