From e525f77fa0d1737b46a0f2cd4c7cbce56911c108 Mon Sep 17 00:00:00 2001 From: CaptainB Date: Wed, 4 Jun 2025 11:08:05 +0800 Subject: [PATCH] feat: refactor pylint handling and update endpoint for workspace tool --- apps/tools/serializers/tool.py | 5 ++++- apps/tools/urls.py | 2 +- apps/tools/views/tool.py | 12 ++++++------ 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py index 1e36ecf86..5c69975ae 100644 --- a/apps/tools/serializers/tool.py +++ b/apps/tools/serializers/tool.py @@ -314,7 +314,10 @@ class ToolSerializer(serializers.Serializer): except Exception as e: return result.error(str(e), response_status=status.HTTP_500_INTERNAL_SERVER_ERROR) - def pylint(self, instance, is_valid=True): + class Pylint(serializers.Serializer): + workspace_id = serializers.CharField(required=True, label=_('workspace id')) + + def run(self, instance, is_valid=True): if is_valid: self.is_valid(raise_exception=True) PylintInstance(data=instance).is_valid(raise_exception=True) diff --git a/apps/tools/urls.py b/apps/tools/urls.py index 1fa3b18f3..cbc69a116 100644 --- a/apps/tools/urls.py +++ b/apps/tools/urls.py @@ -6,9 +6,9 @@ app_name = "tool" urlpatterns = [ path('workspace//tool', views.ToolView.as_view()), path('workspace//tool/import', views.ToolView.Import.as_view()), + path('workspace//tool/pylint', views.ToolView.Pylint.as_view()), path('workspace//tool/', views.ToolView.Operate.as_view()), path('workspace//tool//debug', views.ToolView.Debug.as_view()), - path('workspace//tool//pylint', views.ToolView.Pylint.as_view()), path('workspace//tool//export', views.ToolView.Export.as_view()), path('workspace//tool//', views.ToolView.Page.as_view()), ] diff --git a/apps/tools/views/tool.py b/apps/tools/views/tool.py index 1ecfe9ff1..9d324deac 100644 --- a/apps/tools/views/tool.py +++ b/apps/tools/views/tool.py @@ -181,15 +181,15 @@ class ToolView(APIView): @extend_schema( methods=['POST'], summary=_('Check code'), - operation_id=_('Check code'), # type: ignore + operation_id=_('Check code'), # type: ignore description=_('Check code'), request=PylintAPI.get_request(), responses=PylintAPI.get_response(), parameters=PylintAPI.get_parameters(), - tags=[_('Tool')] # type: ignore + tags=[_('Tool')] # type: ignore ) @has_permissions(PermissionConstants.TOOL_EXPORT.get_workspace_permission()) - def post(self, request: Request, workspace_id: str, tool_id: str): - return result.success(ToolSerializer.Operate( - data={'id': tool_id, 'workspace_id': workspace_id} - ).pylint(request.data)) + def post(self, request: Request, workspace_id: str): + return result.success(ToolSerializer.Pylint( + data={'workspace_id': workspace_id} + ).run(request.data))