55from rest_framework .request import Request
66from rest_framework .views import APIView
77
8+ from common import result
89from common .auth import TokenAuth
910from common .auth .authentication import has_permissions , check_batch_permissions
1011from common .constants .permission_constants import PermissionConstants , RoleConstants , ViewPermission , CompareConstants
1112from common .log .log import log
12- from common import result
1313from tools .api .tool import ToolCreateAPI , ToolEditAPI , ToolReadAPI , ToolDeleteAPI , ToolTreeReadAPI , ToolDebugApi , \
1414 ToolExportAPI , ToolImportAPI , ToolPageAPI , PylintAPI , EditIconAPI , GetInternalToolAPI , AddInternalToolAPI , \
1515 ToolBatchOperateAPI
@@ -25,6 +25,7 @@ def get_tool_operation_object(tool_id):
2525 }
2626 return {}
2727
28+
2829def get_tool_operation_object_batch (tool_id_list ):
2930 tool_model_list = QuerySet (model = Tool ).filter (id__in = tool_id_list )
3031 if tool_model_list is not None :
@@ -684,6 +685,22 @@ def put(self, request: Request, workspace_id: str):
684685 'file' : request .FILES .get ('file' ),
685686 }).upload ())
686687
688+ class DownloadSkillFile (APIView ):
689+ authentication_classes = [TokenAuth ]
690+
691+ @has_permissions (
692+ PermissionConstants .TOOL_EDIT .get_workspace_permission (),
693+ PermissionConstants .TOOL_EDIT .get_workspace_permission_workspace_manage_role (),
694+ RoleConstants .WORKSPACE_MANAGE .get_workspace_role (),
695+ RoleConstants .USER .get_workspace_role ()
696+ )
697+ def get (self , request : Request , workspace_id : str , tool_id : str ):
698+ return ToolSerializer .DownloadSkillFile (data = {
699+ 'workspace_id' : workspace_id ,
700+ 'user_id' : request .user .id ,
701+ 'tool_id' : tool_id ,
702+ }).download ()
703+
687704 class GenerateCode (APIView ):
688705 authentication_classes = [TokenAuth ]
689706
0 commit comments