UnisKB/apps/models_provider/api/model.py

85 lines
2.1 KiB
Python
Raw Normal View History

2025-04-17 10:01:33 +00:00
# coding=utf-8
2025-04-18 09:45:15 +00:00
from drf_spectacular.types import OpenApiTypes
from drf_spectacular.utils import OpenApiParameter
from rest_framework import serializers
2025-04-17 10:01:33 +00:00
from common.mixins.api_mixin import APIMixin
2025-04-21 02:24:13 +00:00
from common.result import ResultSerializer, DefaultResultSerializer
2025-04-18 09:45:15 +00:00
from models_provider.serializers.model_serializer import ModelModelSerializer, ModelCreateRequest
from django.utils.translation import gettext_lazy as _
2025-04-17 10:01:33 +00:00
class ModelCreateResponse(ResultSerializer):
def get_data(self):
return ModelModelSerializer()
2025-04-18 09:45:15 +00:00
class ModelListResponse(APIMixin):
@staticmethod
def get_response():
2025-04-22 02:45:11 +00:00
class ModelListResult(ResultSerializer):
def get_data(self):
return serializers.ListSerializer(child=ModelModelSerializer())
return ModelListResult
2025-04-18 09:45:15 +00:00
2025-04-17 10:01:33 +00:00
class ModelCreateAPI(APIMixin):
@staticmethod
def get_request():
return ModelCreateRequest
@staticmethod
def get_response():
return ModelCreateResponse
2025-04-18 09:45:15 +00:00
@classmethod
def get_query_params_api(cls):
return [OpenApiParameter(
name="workspace_id",
description=_("workspace id"),
type=OpenApiTypes.STR,
location=OpenApiParameter.PATH,
required=True,
)]
class GetModelApi(APIMixin):
@staticmethod
def get_query_params_api():
return [OpenApiParameter(
name="workspace_id",
description=_("workspace id"),
type=OpenApiTypes.STR,
location=OpenApiParameter.PATH,
required=True,
), OpenApiParameter(
name="model_id",
description=_("model id"),
type=OpenApiTypes.STR,
location=OpenApiParameter.PATH,
required=True,
)
]
@staticmethod
def get_response():
2025-04-22 02:45:11 +00:00
return ModelCreateResponse
2025-04-18 09:45:15 +00:00
class ModelEditApi(APIMixin):
@staticmethod
def get_request():
return ModelCreateRequest
@staticmethod
def get_response():
2025-04-22 02:45:11 +00:00
return ModelCreateResponse
2025-04-21 02:24:13 +00:00
class DefaultModelResponse(APIMixin):
@staticmethod
def get_response():
return DefaultResultSerializer()