# DRF Rack # Библиотека классов расширений для Django REST Framework # # Автор: Николай В. Анохин # Все права защищены. Лицензия: MIT """ Описание класса VersionViewSet """ from typing import Any from uuid import UUID from rest_framework.exceptions import ValidationError 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