api: fix event endpoints (#61178)
This commit is contained in:
parent
391674ef20
commit
38e4b745b0
|
@ -44,11 +44,11 @@ urlpatterns = [
|
|||
url(
|
||||
r'^agenda/(?P<agenda_identifier>[\w-]+)/event/$',
|
||||
views.events,
|
||||
name='api-event',
|
||||
name='api-events',
|
||||
),
|
||||
url(
|
||||
r'^agenda/(?P<agenda_identifier>[\w-]+)/event/(?P<event_identifier>[\w:-]+)/$',
|
||||
views.events,
|
||||
views.event,
|
||||
name='api-event',
|
||||
),
|
||||
url(
|
||||
|
|
|
@ -2226,19 +2226,10 @@ class ResizeBooking(APIView):
|
|||
resize_booking = ResizeBooking.as_view()
|
||||
|
||||
|
||||
class Events(APIView):
|
||||
class EventsAPI(APIView):
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
serializer_class = serializers.EventSerializer
|
||||
|
||||
def get_object(self, agenda_identifier, event_identifier):
|
||||
agenda = get_object_or_404(Agenda, slug=agenda_identifier, kind='events')
|
||||
if ':' in event_identifier:
|
||||
return get_event_recurrence(agenda, event_identifier)
|
||||
try:
|
||||
return agenda.event_set.get(slug=event_identifier)
|
||||
except Event.DoesNotExist:
|
||||
raise Http404()
|
||||
|
||||
def post(self, request, agenda_identifier):
|
||||
agenda = get_object_or_404(Agenda, slug=agenda_identifier, kind='events')
|
||||
|
||||
|
@ -2251,6 +2242,23 @@ class Events(APIView):
|
|||
event.create_all_recurrences()
|
||||
return Response({'err': 0, 'data': get_event_detail(request, event)})
|
||||
|
||||
|
||||
events = EventsAPI.as_view()
|
||||
|
||||
|
||||
class EventAPI(APIView):
|
||||
permission_classes = (permissions.IsAuthenticated,)
|
||||
serializer_class = serializers.EventSerializer
|
||||
|
||||
def get_object(self, agenda_identifier, event_identifier):
|
||||
agenda = get_object_or_404(Agenda, slug=agenda_identifier, kind='events')
|
||||
if ':' in event_identifier:
|
||||
return get_event_recurrence(agenda, event_identifier)
|
||||
try:
|
||||
return agenda.event_set.get(slug=event_identifier)
|
||||
except Event.DoesNotExist:
|
||||
raise Http404()
|
||||
|
||||
def patch(self, request, agenda_identifier=None, event_identifier=None, format=None):
|
||||
event = self.get_object(agenda_identifier, event_identifier)
|
||||
serializer = self.serializer_class(event, data=request.data, partial=True)
|
||||
|
@ -2310,7 +2318,7 @@ class Events(APIView):
|
|||
return Response({'err': 0})
|
||||
|
||||
|
||||
events = Events.as_view()
|
||||
event = EventAPI.as_view()
|
||||
|
||||
|
||||
class EventStatus(APIView):
|
||||
|
|
|
@ -337,6 +337,8 @@ def test_add_event(app, user):
|
|||
'2021-12-18',
|
||||
]
|
||||
|
||||
app.delete('/api/agenda/%s/event/' % agenda.slug, status=405) # forbidden
|
||||
|
||||
|
||||
@pytest.mark.freeze_time('2021-11-01')
|
||||
def test_update_event(app, user):
|
||||
|
|
Loading…
Reference in New Issue