feat: refactor pylint handling and update endpoint for workspace tool

This commit is contained in:
CaptainB 2025-06-04 11:08:05 +08:00
parent 56a9e69912
commit e525f77fa0
3 changed files with 11 additions and 8 deletions

View File

@ -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)

View File

@ -6,9 +6,9 @@ app_name = "tool"
urlpatterns = [
path('workspace/<str:workspace_id>/tool', views.ToolView.as_view()),
path('workspace/<str:workspace_id>/tool/import', views.ToolView.Import.as_view()),
path('workspace/<str:workspace_id>/tool/pylint', views.ToolView.Pylint.as_view()),
path('workspace/<str:workspace_id>/tool/<str:tool_id>', views.ToolView.Operate.as_view()),
path('workspace/<str:workspace_id>/tool/<str:tool_id>/debug', views.ToolView.Debug.as_view()),
path('workspace/<str:workspace_id>/tool/<str:tool_id>/pylint', views.ToolView.Pylint.as_view()),
path('workspace/<str:workspace_id>/tool/<str:tool_id>/export', views.ToolView.Export.as_view()),
path('workspace/<str:workspace_id>/tool/<int:current_page>/<int:page_size>', views.ToolView.Page.as_view()),
]

View File

@ -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))