diff --git a/apps/function_lib/serializers/function_lib_serializer.py b/apps/function_lib/serializers/function_lib_serializer.py index 1000c2fa9..4e8566cf6 100644 --- a/apps/function_lib/serializers/function_lib_serializer.py +++ b/apps/function_lib/serializers/function_lib_serializer.py @@ -174,6 +174,12 @@ class FunctionLibSerializer(serializers.Serializer): if not QuerySet(FunctionLib).filter(id=self.data.get('id'), user_id=self.data.get('user_id')).exists(): raise AppApiException(500, '函数不存在') + def delete(self, with_valid=True): + if with_valid: + self.is_valid(raise_exception=True) + QuerySet(FunctionLib).filter(id=self.data.get('id')).delete() + return True + def edit(self, instance, with_valid=True): if with_valid: self.is_valid(raise_exception=True) diff --git a/apps/function_lib/views/function_lib_views.py b/apps/function_lib/views/function_lib_views.py index a3c87fb87..2eebe894a 100644 --- a/apps/function_lib/views/function_lib_views.py +++ b/apps/function_lib/views/function_lib_views.py @@ -71,6 +71,15 @@ class FunctionLibView(APIView): FunctionLibSerializer.Operate(data={'user_id': request.user.id, 'id': function_lib_id}).edit( request.data)) + @action(methods=['DELETE'], detail=False) + @swagger_auto_schema(operation_summary="删除函数", + operation_id="删除函数", + tags=['函数库']) + @has_permissions(RoleConstants.ADMIN, RoleConstants.USER) + def delete(self, request: Request, function_lib_id: str): + return result.success( + FunctionLibSerializer.Operate(data={'user_id': request.user.id, 'id': function_lib_id}).delete()) + class Page(APIView): authentication_classes = [TokenAuth]