Добавлен класс CoreViewSet и тесты к нему

This commit is contained in:
2026-07-16 11:52:51 +03:00
parent 4ce8a1ba58
commit b713a2124b
32 changed files with 2263 additions and 55 deletions

View File

@@ -8,7 +8,7 @@
Пакет описания классов перечислений
"""
from .ui_language import UILanguage
from .auth_reject_reson import AuthRejectReason
from .http_method import HttpMethod
from .ui_language import UILanguage
from .view_set_action import ViewSetAction

View File

@@ -0,0 +1,42 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса HttpMethod
"""
from enum import unique
from net.xeaf.rack.core import CoreEnum
@unique
class HttpMethod(CoreEnum):
"""
Перечисление методов протокола HTTP
"""
GET = 'GET'
""" Получение данных """
POST = 'POST'
""" Создание данных """
PUT = 'PUT'
""" Изменение данных """
PATCH = 'PATCH'
""" Частичное изменение данных """
DELETE = 'DELETE'
""" Удаление данных """
HEAD = 'HEAD'
""" Получение заголовков """
OPTIONS = 'OPTIONS'
""" Получение возможных действий """

View File

@@ -19,45 +19,31 @@ class ViewSetAction(CoreEnum):
Перечисление действий набора представлений
"""
LIST = "list"
LIST = "LIST"
""" Список объектов """
RETRIEVE = "retrieve"
RETRIEVE = "RETRIEVE"
""" Получение объекта """
CREATE = "create"
CREATE = "CREATE"
""" Создание объекта """
UPDATE = "update"
UPDATE = "UPDATE"
""" Изменение объекта """
PARTIAL_UPDATE = "partial_update"
PARTIAL_UPDATE = "PARTIAL_UPDATE"
""" Частичное изменение объекта """
DESTROY = "destroy"
DESTROY = "DESTROY"
""" Удаление объекта """
@classmethod
def get_method(cls, action: ViewSetAction) -> str:
"""
Возвращает HTTP метод для указанного действия
Возвращает идентификатор метода класса для указанного действия
:param action: Действие
:return: HTTP метод
:return: Идентификатор метода класса
"""
match action:
case cls.LIST:
return "item_list"
case cls.CREATE:
return "item_create"
case cls.RETRIEVE:
return "item_retrieve"
case cls.UPDATE:
return "item_update"
case cls.PARTIAL_UPDATE:
return "item_partial_update"
case cls.DESTROY:
return "item_destroy"
case _:
raise ValueError(f"Invalid action: {action}")
return f"item_{action.value.lower()}"