mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 18:32:48 +00:00
137 lines
4.8 KiB
Python
137 lines
4.8 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
|
|
from rest_framework import serializers
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
|
|
class ProvideResponse(ResultSerializer):
|
|
def get_data(self):
|
|
return ProvideSerializer()
|
|
|
|
|
|
class ProvideSerializer(serializers.Serializer):
|
|
name = serializers.CharField(required=True, max_length=64, label=_("model name"))
|
|
provider = serializers.CharField(required=True, label=_("provider"))
|
|
icon = serializers.CharField(required=True, label=_("icon"))
|
|
|
|
|
|
class ProvideListSerializer(serializers.Serializer):
|
|
key = serializers.CharField(required=True, max_length=64, label=_("model name"))
|
|
value = serializers.CharField(required=True, label=_("value"))
|
|
|
|
|
|
class ModelListSerializer(serializers.Serializer):
|
|
name = serializers.CharField(required=True, label=_("model name"))
|
|
model_type = serializers.CharField(required=True, label=_("model type"))
|
|
desc = serializers.CharField(required=True, label=_("model name"))
|
|
|
|
|
|
class ModelParamsFormSerializer(serializers.Serializer):
|
|
input_type = serializers.CharField(required=False, label=_("input type"))
|
|
label = serializers.CharField(required=False, label=_("label"))
|
|
text_field = serializers.CharField(required=False, label=_("text field"))
|
|
value_field = serializers.CharField(required=False, label=_("value field"))
|
|
provider = serializers.CharField(required=False, label=_("provider"))
|
|
method = serializers.CharField(required=False, label=_("method"))
|
|
required = serializers.BooleanField(required=False, label=_("required"))
|
|
default_value = serializers.CharField(required=False, label=_("default value"))
|
|
relation_show_field_dict = serializers.DictField(required=False, label=_("relation show field dict"))
|
|
relation_trigger_field_dict = serializers.DictField(required=False, label=_("relation trigger field dict"))
|
|
trigger_type = serializers.CharField(required=False, label=_("trigger type"))
|
|
attrs = serializers.DictField(required=False, label=_("attrs"))
|
|
props_info = serializers.DictField(required=False, label=_("props info"))
|
|
|
|
|
|
class ModelParamsFormResponse(ResultSerializer):
|
|
def get_data(self):
|
|
return ModelParamsFormSerializer(many=True)
|
|
|
|
|
|
class ModelListResponse(ResultSerializer):
|
|
def get_data(self):
|
|
return ModelListSerializer(many=True)
|
|
|
|
|
|
class ProvideListResponse(ResultSerializer):
|
|
def get_data(self):
|
|
return ProvideListSerializer(many=True)
|
|
|
|
|
|
class ProvideApi(APIMixin):
|
|
class ModelParamsForm(APIMixin):
|
|
@staticmethod
|
|
def get_query_params_api():
|
|
return [OpenApiParameter(
|
|
name="model_type",
|
|
description=_("model type"),
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
required=True,
|
|
), OpenApiParameter(
|
|
name="provider",
|
|
description=_("provider"),
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
required=True,
|
|
), OpenApiParameter(
|
|
name="model_name",
|
|
description=_("model name"),
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
required=True,
|
|
)
|
|
]
|
|
|
|
@staticmethod
|
|
def get_response():
|
|
return ModelParamsFormResponse
|
|
|
|
class ModelList(APIMixin):
|
|
@staticmethod
|
|
def get_query_params_api():
|
|
return [OpenApiParameter(
|
|
name="model_type",
|
|
description=_("model type"),
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
required=True,
|
|
), OpenApiParameter(
|
|
name="provider",
|
|
description=_("provider"),
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
required=True,
|
|
)
|
|
]
|
|
|
|
@staticmethod
|
|
def get_response():
|
|
return ModelListResponse
|
|
|
|
@staticmethod
|
|
def get_response():
|
|
return ProvideResponse
|
|
|
|
class ModelTypeList(APIMixin):
|
|
@staticmethod
|
|
def get_query_params_api():
|
|
return [OpenApiParameter(
|
|
# 参数的名称是done
|
|
name="provider",
|
|
# 对参数的备注
|
|
description=_("provider"),
|
|
# 指定参数的类型
|
|
type=OpenApiTypes.STR,
|
|
location=OpenApiParameter.QUERY,
|
|
# 指定必须给
|
|
required=True,
|
|
)]
|
|
|
|
@staticmethod
|
|
def get_response():
|
|
return ProvideListResponse
|