diff --git a/backend/project/api/events/urls.py b/backend/project/api/events/urls.py index 5f43cc1..e71a7e9 100644 --- a/backend/project/api/events/urls.py +++ b/backend/project/api/events/urls.py @@ -1,6 +1,7 @@ from django.urls import include, path from rest_framework import routers +from api.events import views from api.events.views import EventViewSet app_name = "events" @@ -9,4 +10,5 @@ router.register("", EventViewSet) urlpatterns = [ path("", include(router.urls)), + path("/users/", views.EventUsersApiView.as_view(), name="users"), ] diff --git a/backend/project/api/events/views.py b/backend/project/api/events/views.py index f4a5ddf..a79dc82 100644 --- a/backend/project/api/events/views.py +++ b/backend/project/api/events/views.py @@ -1,9 +1,29 @@ +from rest_framework import status +from rest_framework.response import Response +from rest_framework.views import APIView from rest_framework.viewsets import ModelViewSet from api.events.models import Event from api.events.serializers import EventSerializer +from api.users.serializers import UserSerializer class EventViewSet(ModelViewSet): queryset = Event.objects.all() serializer_class = EventSerializer + + +class EventUsersApiView(APIView): + def get(self, request, event_id): # noqa: ARG002 + try: + event = Event.objects.get(pk=event_id) + except Event.DoesNotExist: + return Response( + {"error": "Event does not exist"}, + status=status.HTTP_404_NOT_FOUND, + ) + + users = event.users.all() + serializer = UserSerializer(users, many=True) + + return Response(serializer.data)