MaxKB/apps/tools/views/tool.py

29 lines
1.2 KiB
Python

from django.utils.translation import gettext_lazy as _
from drf_spectacular.utils import extend_schema
from rest_framework.request import Request
from rest_framework.views import APIView
from common.auth import TokenAuth
from common.auth.authentication import has_permissions
from common.constants.permission_constants import PermissionConstants
from common.result import result
from tools.api.tool import ToolCreateAPI
from tools.serializers.tool import ToolSerializer
class ToolCreateView(APIView):
authentication_classes = [TokenAuth]
@extend_schema(methods=['POST'],
description=_('Create tool'),
operation_id=_('Create tool'),
request=ToolCreateAPI.get_request(),
responses=ToolCreateAPI.get_response(),
tags=[_('Tool')])
@has_permissions(PermissionConstants.TOOL_CREATE)
# @log(menu='Tool', operate="Create tool",
# get_operation_object=lambda r, k: r.data.get('name'))
def post(self, request: Request, workspace_id: str):
print(workspace_id)
return result.success(ToolSerializer.Create(data={'user_id': request.user.id}).insert(request.data))