feat(events): add EventDeleteView for permanent event deletion

- Add EventDeleteView with DELETE /api/v1/events/<pk>/delete/
- Register delete URL in admin_api/urls.py
This commit is contained in:
2026-04-03 17:21:26 +05:30
parent bae9ac9e23
commit 4a24e9cdca
2 changed files with 12 additions and 0 deletions

View File

@@ -30,6 +30,7 @@ urlpatterns = [
path('events/<int:pk>/', views.EventDetailView.as_view(), name='event-detail'), path('events/<int:pk>/', views.EventDetailView.as_view(), name='event-detail'),
path('events/<int:pk>/update/', views.EventUpdateView.as_view(), name='event-update'), path('events/<int:pk>/update/', views.EventUpdateView.as_view(), name='event-update'),
path('events/<int:pk>/moderate/', views.EventModerationView.as_view(), name='event-moderate'), path('events/<int:pk>/moderate/', views.EventModerationView.as_view(), name='event-moderate'),
path('events/<int:pk>/delete/', views.EventDeleteView.as_view(), name='event-delete'),
path('events/create/', views.EventCreateView.as_view(), name='event-create'), path('events/create/', views.EventCreateView.as_view(), name='event-create'),
path('events/types/', views.EventTypesView.as_view(), name='event-types'), path('events/types/', views.EventTypesView.as_view(), name='event-types'),
path('events/<int:pk>/primary-image/', views.EventPrimaryImageView.as_view(), name='event-primary-image'), path('events/<int:pk>/primary-image/', views.EventPrimaryImageView.as_view(), name='event-primary-image'),

View File

@@ -861,6 +861,17 @@ class EventModerationView(APIView):
return Response(_serialize_event(e)) return Response(_serialize_event(e))
class EventDeleteView(APIView):
permission_classes = [IsAuthenticated]
def delete(self, request, pk):
from events.models import Event
from django.shortcuts import get_object_or_404
e = get_object_or_404(Event, pk=pk)
e.delete()
return Response({'status': 'deleted'}, status=204)
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
# Phase 6: Financials & Payouts # Phase 6: Financials & Payouts
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------