Skip to content

Commit a8cda7d

Browse files
committed
feat: consolidate module and tool views by removing redundant classes and updating API endpoints
1 parent 39841cb commit a8cda7d

File tree

5 files changed

+57
-67
lines changed

5 files changed

+57
-67
lines changed

apps/modules/urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
app_name = "module"
66
urlpatterns = [
7-
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.Create.as_view()),
8-
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleTreeView.as_view()),
7+
path('workspace/<str:workspace_id>/<str:source>/module', views.ModuleView.as_view()),
98
path('workspace/<str:workspace_id>/<str:source>/module/<str:module_id>', views.ModuleView.Operate.as_view()),
109
]

apps/modules/views/module.py

Lines changed: 29 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,36 @@
1212

1313

1414
class ModuleView(APIView):
15-
class Create(APIView):
16-
authentication_classes = [TokenAuth]
15+
authentication_classes = [TokenAuth]
1716

18-
@extend_schema(methods=['POST'],
19-
description=_('Create module'),
20-
operation_id=_('Create module'),
21-
parameters=ModuleCreateAPI.get_parameters(),
22-
request=ModuleCreateAPI.get_request(),
23-
responses=ModuleCreateAPI.get_response(),
24-
tags=[_('Module')])
25-
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
26-
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
27-
def post(self, request: Request, workspace_id: str, source: str):
28-
return result.success(ModuleSerializer.Create(
29-
data={'user_id': request.user.id,
30-
'source': source,
31-
'workspace_id': workspace_id}
32-
).insert(request.data))
17+
@extend_schema(methods=['POST'],
18+
description=_('Create module'),
19+
operation_id=_('Create module'),
20+
parameters=ModuleCreateAPI.get_parameters(),
21+
request=ModuleCreateAPI.get_request(),
22+
responses=ModuleCreateAPI.get_response(),
23+
tags=[_('Module')])
24+
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.CREATE,
25+
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
26+
def post(self, request: Request, workspace_id: str, source: str):
27+
return result.success(ModuleSerializer.Create(
28+
data={'user_id': request.user.id,
29+
'source': source,
30+
'workspace_id': workspace_id}
31+
).insert(request.data))
32+
33+
@extend_schema(methods=['GET'],
34+
description=_('Get module tree'),
35+
operation_id=_('Get module tree'),
36+
parameters=ModuleTreeReadAPI.get_parameters(),
37+
responses=ModuleTreeReadAPI.get_response(),
38+
tags=[_('Module')])
39+
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
40+
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
41+
def get(self, request: Request, workspace_id: str, source: str):
42+
return result.success(ModuleTreeSerializer(
43+
data={'workspace_id': workspace_id, 'source': source}
44+
).get_module_tree(request.query_params.get('name')))
3345

3446
class Operate(APIView):
3547
authentication_classes = [TokenAuth]
@@ -73,20 +85,3 @@ def delete(self, request: Request, workspace_id: str, source: str, module_id: st
7385
return result.success(ModuleSerializer.Operate(
7486
data={'id': module_id, 'workspace_id': workspace_id, 'source': source}
7587
).delete())
76-
77-
78-
class ModuleTreeView(APIView):
79-
authentication_classes = [TokenAuth]
80-
81-
@extend_schema(methods=['GET'],
82-
description=_('Get module tree'),
83-
operation_id=_('Get module tree'),
84-
parameters=ModuleTreeReadAPI.get_parameters(),
85-
responses=ModuleTreeReadAPI.get_response(),
86-
tags=[_('Module')])
87-
@has_permissions(lambda r, kwargs: Permission(group=Group(kwargs.get('source')), operate=Operate.READ,
88-
resource_path=f"/WORKSPACE/{kwargs.get('workspace_id')}"))
89-
def get(self, request: Request, workspace_id: str, source: str):
90-
return result.success(ModuleTreeSerializer(
91-
data={'workspace_id': workspace_id, 'source': source}
92-
).get_module_tree(request.query_params.get('name')))

apps/tools/api/tool.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,6 @@ def get_parameters():
8888
description="模块id",
8989
type=OpenApiTypes.STR,
9090
location='query',
91-
required=True,
91+
required=False,
9292
)
9393
]

apps/tools/urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
app_name = "tool"
66
urlpatterns = [
7-
path('workspace/<str:workspace_id>/tool', views.ToolView.Create.as_view()),
8-
path('workspace/<str:workspace_id>/tool', views.ToolTreeView.as_view()),
7+
path('workspace/<str:workspace_id>/tool', views.ToolView.as_view()),
98
path('workspace/<str:workspace_id>/tool/<str:tool_id>', views.ToolView.Operate.as_view()),
109
]

apps/tools/views/tool.py

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,32 @@
1212

1313

1414
class ToolView(APIView):
15-
class Create(APIView):
16-
authentication_classes = [TokenAuth]
15+
authentication_classes = [TokenAuth]
1716

18-
@extend_schema(methods=['POST'],
19-
description=_('Create tool'),
20-
operation_id=_('Create tool'),
21-
parameters=ToolCreateAPI.get_parameters(),
22-
request=ToolCreateAPI.get_request(),
23-
responses=ToolCreateAPI.get_response(),
24-
tags=[_('Tool')])
25-
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
26-
def post(self, request: Request, workspace_id: str):
27-
return result.success(ToolSerializer.Create(
28-
data={'user_id': request.user.id, 'workspace_id': workspace_id}
29-
).insert(request.data))
17+
@extend_schema(methods=['POST'],
18+
description=_('Create tool'),
19+
operation_id=_('Create tool'),
20+
parameters=ToolCreateAPI.get_parameters(),
21+
request=ToolCreateAPI.get_request(),
22+
responses=ToolCreateAPI.get_response(),
23+
tags=[_('Tool')])
24+
@has_permissions(PermissionConstants.TOOL_CREATE.get_workspace_permission())
25+
def post(self, request: Request, workspace_id: str):
26+
return result.success(ToolSerializer.Create(
27+
data={'user_id': request.user.id, 'workspace_id': workspace_id}
28+
).insert(request.data))
29+
30+
@extend_schema(methods=['GET'],
31+
description=_('Get tool by module'),
32+
operation_id=_('Get tool by module'),
33+
parameters=ToolTreeReadAPI.get_parameters(),
34+
responses=ToolTreeReadAPI.get_response(),
35+
tags=[_('Tool')])
36+
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
37+
def get(self, request: Request, workspace_id: str):
38+
return result.success(ToolTreeSerializer(
39+
data={'workspace_id': workspace_id}
40+
).get_tools(request.query_params.get('module_id')))
3041

3142
class Operate(APIView):
3243
authentication_classes = [TokenAuth]
@@ -69,17 +80,3 @@ def delete(self, request: Request, workspace_id: str, tool_id: str):
6980
).delete())
7081

7182

72-
class ToolTreeView(APIView):
73-
authentication_classes = [TokenAuth]
74-
75-
@extend_schema(methods=['GET'],
76-
description=_('Get tool by module'),
77-
operation_id=_('Get tool by module'),
78-
parameters=ToolTreeReadAPI.get_parameters(),
79-
responses=ToolTreeReadAPI.get_response(),
80-
tags=[_('Tool')])
81-
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_permission())
82-
def get(self, request: Request, workspace_id: str):
83-
return result.success(ToolTreeSerializer(
84-
data={'workspace_id': workspace_id}
85-
).get_tools(request.query_params.get('module_id')))

0 commit comments

Comments
 (0)