64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Описание класса ViewSetAction
|
|
"""
|
|
|
|
from enum import unique
|
|
|
|
from net.xeaf.rack.core import CoreEnum
|
|
|
|
|
|
@unique
|
|
class ViewSetAction(CoreEnum):
|
|
"""
|
|
Перечисление действий набора представлений
|
|
"""
|
|
|
|
LIST = "list"
|
|
""" Список объектов """
|
|
|
|
RETRIEVE = "retrieve"
|
|
""" Получение объекта """
|
|
|
|
CREATE = "create"
|
|
""" Создание объекта """
|
|
|
|
UPDATE = "update"
|
|
""" Изменение объекта """
|
|
|
|
PARTIAL_UPDATE = "partial_update"
|
|
""" Частичное изменение объекта """
|
|
|
|
DESTROY = "destroy"
|
|
""" Удаление объекта """
|
|
|
|
@classmethod
|
|
def get_method(cls, action: ViewSetAction) -> str:
|
|
"""
|
|
Возвращает HTTP метод для указанного действия
|
|
|
|
:param action: Действие
|
|
:return: HTTP метод
|
|
"""
|
|
|
|
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}")
|