Skip to content

Commit 5cb7fc8

Browse files
committed
feat: refactor shared tool API to utilize ToolSerializer for create, update, and import operations
1 parent f5bc003 commit 5cb7fc8

File tree

2 files changed

+6
-5
lines changed

2 files changed

+6
-5
lines changed

apps/tools/serializers/tool.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ def insert(self, instance, with_valid=True):
210210
user_id=self.data.get('user_id'),
211211
input_field_list=instance.get('input_field_list', []),
212212
init_field_list=instance.get('init_field_list', []),
213-
scope=ToolScope.WORKSPACE,
213+
scope=instance.get('scope', ToolScope.WORKSPACE),
214214
folder_id=instance.get('folder_id', 'root'),
215215
is_active=False)
216216
tool.save()
@@ -371,7 +371,7 @@ class Import(serializers.Serializer):
371371

372372
#
373373
@transaction.atomic
374-
def import_(self):
374+
def import_(self, scope=ToolScope.WORKSPACE):
375375
self.is_valid()
376376

377377
user_id = self.data.get('user_id')
@@ -389,7 +389,7 @@ def import_(self):
389389
user_id=user_id,
390390
input_field_list=tool.get('input_field_list'),
391391
init_field_list=tool.get('init_field_list', []),
392-
scope=ToolScope.WORKSPACE,
392+
scope=scope,
393393
is_active=False
394394
)
395395
tool_model.save()

apps/tools/views/tool.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from common.result import result
1111
from tools.api.tool import ToolCreateAPI, ToolEditAPI, ToolReadAPI, ToolDeleteAPI, ToolTreeReadAPI, ToolDebugApi, \
1212
ToolExportAPI, ToolImportAPI, ToolPageAPI, PylintAPI, EditIconAPI
13+
from tools.models import ToolScope
1314
from tools.serializers.tool import ToolSerializer, ToolTreeSerializer
1415

1516

@@ -30,7 +31,7 @@ class ToolView(APIView):
3031
def post(self, request: Request, workspace_id: str):
3132
return result.success(ToolSerializer.Create(
3233
data={'user_id': request.user.id, 'workspace_id': workspace_id}
33-
).insert(request.data))
34+
).insert({**request.data, 'scope': ToolScope.WORKSPACE}))
3435

3536
@extend_schema(
3637
methods=['GET'],
@@ -155,7 +156,7 @@ class Import(APIView):
155156
def post(self, request: Request, workspace_id: str):
156157
return result.success(ToolSerializer.Import(
157158
data={'workspace_id': workspace_id, 'file': request.FILES.get('file'), 'user_id': request.user.id}
158-
).import_())
159+
).import_(ToolScope.WORKSPACE))
159160

160161
class Export(APIView):
161162
authentication_classes = [TokenAuth]

0 commit comments

Comments
 (0)