Skip to content

Commit 5a101a7

Browse files
committed
refactor: reorder imports and improve code formatting in tool_workflow.py
1 parent 66ac419 commit 5a101a7

1 file changed

Lines changed: 98 additions & 69 deletions

File tree

apps/tools/views/tool_workflow.py

Lines changed: 98 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
# coding=utf-8
22

3-
from django.utils.translation import gettext_lazy as _
4-
from drf_spectacular.utils import extend_schema
5-
from rest_framework.request import Request
6-
from rest_framework.views import APIView
7-
83
from application.api.application_api import SpeechToTextAPI
94
from common.auth import TokenAuth
105
from common.auth.authentication import has_permissions
11-
from common.constants.permission_constants import PermissionConstants, RoleConstants, ViewPermission, CompareConstants
6+
from common.constants.permission_constants import CompareConstants, PermissionConstants, RoleConstants, ViewPermission
127
from common.log.log import log
13-
from common.result import result, DefaultResultSerializer
8+
from common.result import DefaultResultSerializer, result
9+
from django.utils.translation import gettext_lazy as _
10+
from drf_spectacular.utils import extend_schema
1411
from knowledge.api.knowledge_workflow import KnowledgeWorkflowApi
12+
from rest_framework.request import Request
13+
from rest_framework.views import APIView
14+
1515
from tools.api.tool import GetInternalToolAPI
1616
from tools.api.tool_workflow import ToolWorkflowApi
17-
from tools.serializers.tool_workflow import ToolWorkflowSerializer, ToolWorkflowMcpSerializer, StoreToolWorkflow
17+
from tools.serializers.tool_workflow import StoreToolWorkflow, ToolWorkflowMcpSerializer, ToolWorkflowSerializer
1818
from tools.views import get_tool_operation_object
1919

2020

@@ -25,41 +25,53 @@ class Publish(APIView):
2525
authentication_classes = [TokenAuth]
2626

2727
@extend_schema(
28-
methods=['PUT'],
28+
methods=["PUT"],
2929
description=_("Publishing an tool"),
3030
summary=_("Publishing an tool"),
3131
operation_id=_("Publishing an tool"), # type: ignore
3232
parameters=ToolWorkflowApi.get_parameters(),
3333
request=None,
3434
responses=DefaultResultSerializer,
35-
tags=[_('Tool')] # type: ignore
35+
tags=[_("Tool")], # type: ignore
36+
)
37+
@has_permissions(
38+
PermissionConstants.TOOL_PUBLISH.get_workspace_tool_permission(),
39+
PermissionConstants.TOOL_PUBLISH.get_workspace_permission_workspace_manage_role(),
40+
ViewPermission(
41+
[RoleConstants.USER.get_workspace_role()],
42+
[PermissionConstants.TOOL.get_workspace_tool_permission()],
43+
CompareConstants.AND,
44+
),
45+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
46+
)
47+
@log(
48+
menu="Tool",
49+
operate="Publishing an tool",
50+
get_operation_object=lambda r, k: get_tool_operation_object(k.get("tool_id")),
3651
)
37-
@has_permissions(PermissionConstants.TOOL_PUBLISH.get_workspace_tool_permission(),
38-
PermissionConstants.TOOL_PUBLISH.get_workspace_permission_workspace_manage_role(),
39-
ViewPermission([RoleConstants.USER.get_workspace_role()],
40-
[PermissionConstants.TOOL.get_workspace_tool_permission()],
41-
CompareConstants.AND),
42-
RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
43-
@log(menu='Tool', operate='Publishing an tool',
44-
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')))
4552
def put(self, request: Request, workspace_id: str, tool_id: str):
4653
return result.success(
4754
ToolWorkflowSerializer.Operate(
48-
data={'tool_id': tool_id, 'user_id': request.user.id,
49-
'workspace_id': workspace_id, }).publish())
55+
data={
56+
"tool_id": tool_id,
57+
"user_id": request.user.id,
58+
"workspace_id": workspace_id,
59+
}
60+
).publish()
61+
)
5062

5163
class Operate(APIView):
5264
authentication_classes = [TokenAuth]
5365

5466
@extend_schema(
55-
methods=['PUT'],
56-
description=_('Edit tool workflow'),
57-
summary=_('Edit tool workflow'),
58-
operation_id=_('Edit tool workflow'), # type: ignore
67+
methods=["PUT"],
68+
description=_("Edit tool workflow"),
69+
summary=_("Edit tool workflow"),
70+
operation_id=_("Edit tool workflow"), # type: ignore
5971
parameters=ToolWorkflowApi.get_parameters(),
6072
request=ToolWorkflowApi.get_request(),
6173
responses=ToolWorkflowApi.get_response(),
62-
tags=[_('Tool')] # type: ignore
74+
tags=[_("Tool")], # type: ignore
6375
)
6476
@has_permissions(
6577
PermissionConstants.TOOL_EDIT.get_workspace_tool_permission(),
@@ -68,26 +80,29 @@ class Operate(APIView):
6880
ViewPermission(
6981
[RoleConstants.USER.get_workspace_role()],
7082
[PermissionConstants.TOOL.get_workspace_tool_permission()],
71-
CompareConstants.AND
72-
)
83+
CompareConstants.AND,
84+
),
7385
)
7486
@log(
75-
menu='Tool', operate="Modify tool workflow",
76-
get_operation_object=lambda r, k: get_tool_operation_object(k.get('tool_id')),
87+
menu="Tool",
88+
operate="Modify tool workflow",
89+
get_operation_object=lambda r, k: get_tool_operation_object(k.get("tool_id")),
7790
)
7891
def put(self, request: Request, workspace_id: str, tool_id: str):
79-
return result.success(ToolWorkflowSerializer.Operate(
80-
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'tool_id': tool_id}
81-
).edit(request.data))
92+
return result.success(
93+
ToolWorkflowSerializer.Operate(
94+
data={"user_id": request.user.id, "workspace_id": workspace_id, "tool_id": tool_id}
95+
).edit(request.data)
96+
)
8297

8398
@extend_schema(
84-
methods=['GET'],
85-
description=_('Get tool workflow'),
86-
summary=_('Get tool workflow'),
87-
operation_id=_('Get tool workflow'), # type: ignore
99+
methods=["GET"],
100+
description=_("Get tool workflow"),
101+
summary=_("Get tool workflow"),
102+
operation_id=_("Get tool workflow"), # type: ignore
88103
parameters=KnowledgeWorkflowApi.get_parameters(),
89104
responses=KnowledgeWorkflowApi.get_response(),
90-
tags=[_('Tool')] # type: ignore
105+
tags=[_("Tool")], # type: ignore
91106
)
92107
@has_permissions(
93108
PermissionConstants.TOOL_READ.get_workspace_tool_permission(),
@@ -96,26 +111,28 @@ def put(self, request: Request, workspace_id: str, tool_id: str):
96111
ViewPermission(
97112
[RoleConstants.USER.get_workspace_role()],
98113
[PermissionConstants.TOOL.get_workspace_tool_permission()],
99-
CompareConstants.AND
114+
CompareConstants.AND,
100115
),
101116
)
102117
def get(self, request: Request, workspace_id: str, tool_id: str):
103-
return result.success(ToolWorkflowSerializer.Operate(
104-
data={'user_id': request.user.id, 'workspace_id': workspace_id, 'tool_id': tool_id}
105-
).one())
118+
return result.success(
119+
ToolWorkflowSerializer.Operate(
120+
data={"user_id": request.user.id, "workspace_id": workspace_id, "tool_id": tool_id}
121+
).one()
122+
)
106123

107124

108125
class ToolWorkflowDebugView(APIView):
109126
authentication_classes = [TokenAuth]
110127

111128
@extend_schema(
112-
methods=['POST'],
113-
description=_('tool workflow debug'),
114-
summary=_('tool workflow debug'),
115-
operation_id=_('tool workflow debug'), # type: ignore
129+
methods=["POST"],
130+
description=_("tool workflow debug"),
131+
summary=_("tool workflow debug"),
132+
operation_id=_("tool workflow debug"), # type: ignore
116133
parameters=ToolWorkflowApi.get_parameters(),
117134
responses=ToolWorkflowApi.get_response(),
118-
tags=[_('Tool')] # type: ignore
135+
tags=[_("Tool")], # type: ignore
119136
)
120137
@has_permissions(
121138
PermissionConstants.TOOL_EDIT.get_workspace_tool_permission(),
@@ -124,56 +141,68 @@ class ToolWorkflowDebugView(APIView):
124141
ViewPermission(
125142
[RoleConstants.USER.get_workspace_role()],
126143
[PermissionConstants.TOOL.get_workspace_tool_permission()],
127-
CompareConstants.AND
144+
CompareConstants.AND,
128145
),
129146
)
130147
def post(self, request: Request, workspace_id: str, tool_id: str):
131148
return ToolWorkflowSerializer.Operate(
132-
data={'workspace_id': workspace_id, 'tool_id': tool_id, 'user_id': request.user.id}).debug(
133-
request.data,
134-
request.user,
135-
True)
149+
data={"workspace_id": workspace_id, "tool_id": tool_id, "user_id": request.user.id}
150+
).debug(request.data, request.user, True)
136151

137152

138153
class McpServers(APIView):
139154
authentication_classes = [TokenAuth]
140155

141156
@extend_schema(
142-
methods=['GET'],
157+
methods=["GET"],
143158
description=_("Get the list of MCP tools"),
144159
summary=_("Get the list of MCP tools"),
145160
operation_id=_("Get the list of MCP tools"), # type: ignore
146161
parameters=SpeechToTextAPI.get_parameters(),
147162
request=SpeechToTextAPI.get_request(),
148163
responses=SpeechToTextAPI.get_response(),
149-
tags=[_('Tool')] # type: ignore
164+
tags=[_("Tool")], # type: ignore
165+
)
166+
@has_permissions(
167+
PermissionConstants.TOOL_READ.get_workspace_tool_permission(),
168+
PermissionConstants.TOOL_READ.get_workspace_permission_workspace_manage_role(),
169+
ViewPermission(
170+
[RoleConstants.USER.get_workspace_role()],
171+
[PermissionConstants.TOOL.get_workspace_tool_permission()],
172+
CompareConstants.AND,
173+
),
174+
RoleConstants.WORKSPACE_MANAGE.get_workspace_role(),
150175
)
151-
@has_permissions(PermissionConstants.TOOL_READ.get_workspace_tool_permission(),
152-
PermissionConstants.TOOL_READ.get_workspace_permission_workspace_manage_role(),
153-
ViewPermission([RoleConstants.USER.get_workspace_role()],
154-
[PermissionConstants.TOOL.get_workspace_tool_permission()],
155-
CompareConstants.AND),
156-
RoleConstants.WORKSPACE_MANAGE.get_workspace_role())
157176
def post(self, request: Request, workspace_id, tool_id: str):
158-
return result.success(ToolWorkflowMcpSerializer(
159-
data={'mcp_servers': request.query_params.get('mcp_servers'), 'workspace_id': workspace_id,
160-
'user_id': request.user.id,
161-
'tool_id': tool_id}).get_mcp_servers(request.data))
177+
return result.success(
178+
ToolWorkflowMcpSerializer(
179+
data={
180+
"mcp_servers": request.query_params.get("mcp_servers"),
181+
"workspace_id": workspace_id,
182+
"user_id": request.user.id,
183+
"tool_id": tool_id,
184+
}
185+
).get_mcp_servers(request.data)
186+
)
162187

163188

164189
class StoreToolWorkflowView(APIView):
165190
authentication_classes = [TokenAuth]
166191

167192
@extend_schema(
168-
methods=['GET'],
193+
methods=["GET"],
169194
description=_("Get Appstore tools"),
170195
summary=_("Get Appstore tools"),
171196
operation_id=_("Get Appstore tools"), # type: ignore
172197
responses=GetInternalToolAPI.get_response(),
173-
tags=[_("Tool")] # type: ignore
198+
tags=[_("Tool")], # type: ignore
174199
)
175200
def get(self, request: Request):
176-
return result.success(StoreToolWorkflow(data={
177-
'user_id': request.user.id,
178-
'name': request.query_params.get('name', ''),
179-
}).get_appstore_templates())
201+
return result.success(
202+
StoreToolWorkflow(
203+
data={
204+
"user_id": request.user.id,
205+
"name": request.query_params.get("name", ""),
206+
}
207+
).get_appstore_templates()
208+
)

0 commit comments

Comments
 (0)