MaxKB/apps/folders/api/folder.py

119 lines
3.1 KiB
Python

# coding=utf-8
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter
from common.mixins.api_mixin import APIMixin
from common.result import ResultSerializer, DefaultResultSerializer
from folders.models.folder import FolderCreateRequest, FolderEditRequest
from folders.serializers.folder import FolderSerializer
class FolderCreateResponse(ResultSerializer):
def get_data(self):
return FolderSerializer()
class FolderCreateAPI(APIMixin):
@staticmethod
def get_parameters():
return [
OpenApiParameter(
name="workspace_id",
description="工作空间id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
OpenApiParameter(
name="source",
description="菜单",
type=OpenApiTypes.STR,
enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
location='path',
required=True,
)
]
@staticmethod
def get_request():
return FolderCreateRequest
@staticmethod
def get_response():
return FolderCreateResponse
class FolderReadAPI(APIMixin):
@staticmethod
def get_parameters():
return [
OpenApiParameter(
name="workspace_id",
description="工作空间id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
OpenApiParameter(
name="source",
description="菜单",
type=OpenApiTypes.STR,
enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
location='path',
required=True,
),
OpenApiParameter(
name="folder_id",
description="文件夹id",
type=OpenApiTypes.STR,
location='path',
required=True,
)
]
@staticmethod
def get_response():
return FolderCreateResponse
class FolderEditAPI(FolderReadAPI):
@staticmethod
def get_request():
return FolderEditRequest
class FolderDeleteAPI(FolderReadAPI):
@staticmethod
def get_response():
return DefaultResultSerializer
class FolderTreeReadAPI(APIMixin):
@staticmethod
def get_parameters():
return [
OpenApiParameter(
name="workspace_id",
description="工作空间id",
type=OpenApiTypes.STR,
location='path',
required=True,
),
OpenApiParameter(
name="source",
description="菜单",
type=OpenApiTypes.STR,
enum=["APPLICATION", "KNOWLEDGE", "TOOL"],
location='path',
required=True,
),
OpenApiParameter(
name="name",
description="名称",
type=OpenApiTypes.STR,
location='query',
required=False,
),
]