77from common .auth .authentication import has_permissions
88from common .constants .permission_constants import PermissionConstants
99from common .result import result
10- from tools .api .tool import ToolCreateAPI , ToolEditAPI , ToolReadAPI , ToolDeleteAPI
11- from tools .serializers .tool import ToolSerializer
10+ from tools .api .tool import ToolCreateAPI , ToolEditAPI , ToolReadAPI , ToolDeleteAPI , ToolTreeReadAPI
11+ from tools .serializers .tool import ToolSerializer , ToolTreeSerializer
1212
1313
1414class ToolView (APIView ):
@@ -45,8 +45,8 @@ def put(self, request: Request, workspace_id: str, tool_id: str):
4545 ).edit (request .data ))
4646
4747 @extend_schema (methods = ['GET' ],
48- description = _ ('Update tool' ),
49- operation_id = _ ('Update tool' ),
48+ description = _ ('Get tool' ),
49+ operation_id = _ ('Get tool' ),
5050 parameters = ToolReadAPI .get_parameters (),
5151 responses = ToolReadAPI .get_response (),
5252 tags = [_ ('Tool' )])
@@ -66,3 +66,19 @@ def delete(self, request: Request, workspace_id: str, tool_id: str):
6666 return result .success (ToolSerializer .Operate (
6767 data = {'id' : tool_id , 'workspace_id' : workspace_id }
6868 ).delete ())
69+
70+
71+ class ToolTreeView (APIView ):
72+ authentication_classes = [TokenAuth ]
73+
74+ @extend_schema (methods = ['GET' ],
75+ description = _ ('Get tool' ),
76+ operation_id = _ ('Get tool' ),
77+ parameters = ToolTreeReadAPI .get_parameters (),
78+ responses = ToolTreeReadAPI .get_response (),
79+ tags = [_ ('Tool' )])
80+ @has_permissions (PermissionConstants .TOOL_READ .get_workspace_permission ())
81+ def get (self , request : Request , workspace_id : str ):
82+ return result .success (ToolTreeSerializer (
83+ data = {'workspace_id' : workspace_id }
84+ ).get_tools (request .query_params .get ('module_id' )))
0 commit comments