diff --git a/backend/project/api/users/urls.py b/backend/project/api/users/urls.py index 2708ef3..5e6f3a9 100644 --- a/backend/project/api/users/urls.py +++ b/backend/project/api/users/urls.py @@ -5,6 +5,7 @@ from api.users.views import ( DownloadUsersFromExcelView, RegisterUsersFromExcelView, UserViewSet, + UsersByEvent, ) app_name = "users" @@ -15,6 +16,11 @@ router.register("", UserViewSet) urlpatterns = [ path("", include(router.urls)), + path( + "by-event//", + UsersByEvent.as_view(), + name="users-by-event", + ), path( "upload/excel//", RegisterUsersFromExcelView.as_view(), @@ -24,5 +30,5 @@ urlpatterns = [ "download/excel//", DownloadUsersFromExcelView.as_view(), name="excel-download", - ) + ), ] diff --git a/backend/project/api/users/views.py b/backend/project/api/users/views.py index a67fd2a..eacd739 100644 --- a/backend/project/api/users/views.py +++ b/backend/project/api/users/views.py @@ -18,6 +18,22 @@ class UserViewSet(ModelViewSet): serializer_class = UserSerializer +class UsersByEvent(APIView): + def get(self, _, event_id): + 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) + + class RegisterUsersFromExcelView(APIView): def post(self, request, event_id): try: