MaxKB/apps/dataset/views/document.py

52 lines
2.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# coding=utf-8
"""
@project: maxkb
@Author
@file document.py
@date2023/9/22 11:32
@desc:
"""
from drf_yasg.utils import swagger_auto_schema
from rest_framework.decorators import action
from rest_framework.views import APIView
from rest_framework.views import Request
from common.auth import TokenAuth, has_permissions
from common.constants.permission_constants import Permission, Group, Operate, PermissionConstants
from common.response import result
from dataset.serializers.dataset_serializers import CreateDocumentSerializers
class Document(APIView):
authentication_classes = [TokenAuth]
@action(methods=['POST'], detail=False)
@swagger_auto_schema(operation_summary="创建文档",
operation_id="创建文档",
request_body=CreateDocumentSerializers().get_request_body_api(),
manual_parameters=CreateDocumentSerializers().get_request_params_api())
@has_permissions(PermissionConstants.DATASET_CREATE)
def post(self, request: Request, dataset_id: str):
d = CreateDocumentSerializers(data=request.data)
if d.is_valid(dataset_id=dataset_id):
d.save(dataset_id)
return result.success("ok")
class DocumentDetails(APIView):
authentication_classes = [TokenAuth]
@action(methods=['GET'], detail=False)
@swagger_auto_schema(operation_summary="获取文档详情",
operation_id="获取文档详情",
request_body=CreateDocumentSerializers().get_request_body_api(),
manual_parameters=CreateDocumentSerializers().get_request_params_api())
@has_permissions(
lambda r, k: Permission(group=Group.DATASET, operate=Operate.MANAGE, dynamic_tag=k.get('dataset_id')))
def get(self, request: Request, dataset_id: str):
d = CreateDocumentSerializers(data=request.data)
if d.is_valid(dataset_id=dataset_id):
d.save(dataset_id)
return result.success("ok")