Files
drf-rack/net/xeaf/rack/views/version_view_set.py

61 lines
1.9 KiB
Python

# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса VersionViewSet
"""
from typing import Any
from uuid import UUID
from rest_framework.permissions import AllowAny
from net.xeaf.rack.core import CoreModel
from net.xeaf.rack.core.views import CoreViewSet
from net.xeaf.rack.core.views import ViewSetRetrieveMixin
from net.xeaf.rack.serializers import VersionInfoResponse
from net.xeaf.rack.utils.settings import SettingUtils
class VersionViewSet(ViewSetRetrieveMixin, CoreViewSet):
"""
Представление версии приложения
"""
permission_classes = [AllowAny, ]
""" Классы проверки прав доступа """
item_detail_pattern = ""
""" Путь для работы с объектом """
response_serializer = VersionInfoResponse
""" Общий класс сериализатора для ответа """
def _process_retrieve(self, pk: UUID | None, params: dict[str, Any]) -> dict[str, Any] | CoreModel:
"""
Обработка запроса на получение версии приложения
"""
version_info = {
"title": SettingUtils.get_app_name(),
"debug_mode": SettingUtils.is_debug_mode(),
"version": SettingUtils.get_app_version()
}
return version_info
@classmethod
def _process_pk_param(cls, **kwargs: Any) -> UUID | None:
"""
Обработка параметра идентификатора объекта
:param kwargs: Именованные параметры
:return: Идентификатор объекта или None
"""
return None