|
11 | 11 | from common.log.log import log |
12 | 12 | from common.result import result |
13 | 13 | from tools.api.tool import ToolCreateAPI, ToolEditAPI, ToolReadAPI, ToolDeleteAPI, ToolTreeReadAPI, ToolDebugApi, \ |
14 | | - ToolExportAPI, ToolImportAPI, ToolPageAPI, PylintAPI, EditIconAPI |
| 14 | + ToolExportAPI, ToolImportAPI, ToolPageAPI, PylintAPI, EditIconAPI, GetInternalToolAPI, AddInternalToolAPI |
15 | 15 | from tools.models import ToolScope, Tool |
16 | 16 | from tools.serializers.tool import ToolSerializer, ToolTreeSerializer |
17 | 17 |
|
@@ -44,7 +44,7 @@ class ToolView(APIView): |
44 | 44 | ) |
45 | 45 | @log( |
46 | 46 | menu="Tool", operate="Create tool", |
47 | | - get_operation_object=lambda r, k: r.data.get('name'), |
| 47 | + get_operation_object=lambda r, k: r.data.get('name'), |
48 | 48 | ) |
49 | 49 | def post(self, request: Request, workspace_id: str): |
50 | 50 | return result.success(ToolSerializer.Create( |
@@ -110,7 +110,7 @@ class Operate(APIView): |
110 | 110 | @log( |
111 | 111 | menu='Tool', operate='Update tool', |
112 | 112 | get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')), |
113 | | - |
| 113 | +
|
114 | 114 | ) |
115 | 115 | def put(self, request: Request, workspace_id: str, tool_id: str): |
116 | 116 | return result.success(ToolSerializer.Operate( |
@@ -152,7 +152,7 @@ def get(self, request: Request, workspace_id: str, tool_id: str): |
152 | 152 | @log( |
153 | 153 | menu='Tool', operate="Delete tool", |
154 | 154 | get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')), |
155 | | - |
| 155 | +
|
156 | 156 | ) |
157 | 157 | def delete(self, request: Request, workspace_id: str, tool_id: str): |
158 | 158 | return result.success(ToolSerializer.Operate( |
@@ -227,9 +227,8 @@ class Export(APIView): |
227 | 227 | RoleConstants.WORKSPACE_MANAGE.get_workspace_role() |
228 | 228 | ) |
229 | 229 | @log( |
230 | | - menu='Tool', operate="Export function", |
231 | | - get_operation_object=lambda r, k: get_tool_operation_object(k.get('id')), |
232 | | - |
| 230 | + menu='Tool', operate="Export tool", |
| 231 | + get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')), |
233 | 232 | ) |
234 | 233 | def get(self, request: Request, tool_id: str, workspace_id: str): |
235 | 234 | return ToolSerializer.Operate( |
@@ -284,3 +283,49 @@ def put(self, request: Request, tool_id: str, workspace_id: str): |
284 | 283 | 'user_id': request.user.id, |
285 | 284 | 'image': request.FILES.get('file') |
286 | 285 | }).edit(request.data)) |
| 286 | + |
| 287 | + class InternalTool(APIView): |
| 288 | + authentication_classes = [TokenAuth] |
| 289 | + |
| 290 | + @extend_schema( |
| 291 | + methods=['GET'], |
| 292 | + description=_("Get internal tool"), |
| 293 | + summary=_("Get internal tool"), |
| 294 | + operation_id=_("Get internal tool"), # type: ignore |
| 295 | + parameters=GetInternalToolAPI.get_parameters(), |
| 296 | + responses=GetInternalToolAPI.get_response(), |
| 297 | + tags=[_("Tool")] # type: ignore |
| 298 | + ) |
| 299 | + def get(self, request: Request): |
| 300 | + return result.success(ToolSerializer.InternalTool(data={ |
| 301 | + 'user_id': request.user.id, |
| 302 | + 'name': request.query_params.get('name', ''), |
| 303 | + }).get_internal_tools()) |
| 304 | + |
| 305 | + class AddInternalTool(APIView): |
| 306 | + authentication_classes = [TokenAuth] |
| 307 | + |
| 308 | + @extend_schema( |
| 309 | + methods=['POST'], |
| 310 | + description=_("Add internal tool"), |
| 311 | + summary=_("Add internal tool"), |
| 312 | + operation_id=_("Add internal tool"), # type: ignore |
| 313 | + parameters=AddInternalToolAPI.get_parameters(), |
| 314 | + request=AddInternalToolAPI.get_request(), |
| 315 | + responses=AddInternalToolAPI.get_response(), |
| 316 | + tags=[_("Tool")] # type: ignore |
| 317 | + ) |
| 318 | + @has_permissions( |
| 319 | + PermissionConstants.TOOL_CREATE.get_workspace_permission(), |
| 320 | + RoleConstants.WORKSPACE_MANAGE.get_workspace_role() |
| 321 | + ) |
| 322 | + @log( |
| 323 | + menu='Tool', operate="Add internal tool", |
| 324 | + get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')), |
| 325 | + ) |
| 326 | + def post(self, request: Request, tool_id: str, workspace_id: str): |
| 327 | + return result.success(ToolSerializer.AddInternalTool(data={ |
| 328 | + 'tool_id': tool_id, |
| 329 | + 'user_id': request.user.id, |
| 330 | + 'workspace_id': workspace_id |
| 331 | + }).add(request.data)) |
0 commit comments