27 lines
827 B
Python
27 lines
827 B
Python
from django.core.exceptions import ValidationError as DjangoValidationError
|
|
from rest_framework import status
|
|
from rest_framework.exceptions import ValidationError
|
|
from rest_framework.response import Response
|
|
from rest_framework.serializers import Serializer
|
|
|
|
from wagtail.actions.delete_page import DeletePageAction
|
|
|
|
from .base import APIAction
|
|
|
|
|
|
class DeletePageAPIAction(APIAction):
|
|
serializer = Serializer
|
|
|
|
def _action_from_data(self, instance, data):
|
|
return DeletePageAction(page=instance, user=self.request.user)
|
|
|
|
def execute(self, instance, data):
|
|
action = self._action_from_data(instance, data)
|
|
|
|
try:
|
|
action.execute()
|
|
except DjangoValidationError as e:
|
|
raise ValidationError(e.message_dict)
|
|
|
|
return Response(status=status.HTTP_204_NO_CONTENT)
|