From 8bc14524642605444927860a8378f71eea9601aa Mon Sep 17 00:00:00 2001 From: Georg Krause Date: Tue, 4 Jul 2023 10:49:27 +0200 Subject: [PATCH] fix(radios): Make routing REST compliant --- api/funkwhale_api/radios/urls_v2.py | 2 +- api/funkwhale_api/radios/views.py | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/api/funkwhale_api/radios/urls_v2.py b/api/funkwhale_api/radios/urls_v2.py index 9a84a3272..55d1ad9aa 100644 --- a/api/funkwhale_api/radios/urls_v2.py +++ b/api/funkwhale_api/radios/urls_v2.py @@ -4,7 +4,7 @@ from . import views router = routers.OptionalSlashRouter() -router.register(r"tracks", views.RadioSessionTracksViewSet, "tracks") +router.register(r"sessions", views.V2_RadioSessionViewSet, "tracks") urlpatterns = router.urls diff --git a/api/funkwhale_api/radios/views.py b/api/funkwhale_api/radios/views.py index 74a0ec44b..5426ff10b 100644 --- a/api/funkwhale_api/radios/views.py +++ b/api/funkwhale_api/radios/views.py @@ -165,15 +165,16 @@ class V1_RadioSessionTrackViewSet(mixins.CreateModelMixin, viewsets.GenericViewS return super().get_serializer_class(*args, **kwargs) -class RadioSessionTracksViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): - """Return a list of RadioSessionTracks""" +class V2_RadioSessionViewSet(mixins.ListModelMixin, viewsets.GenericViewSet): + """Returns a list of RadioSessions""" - serializer_class = serializers.RadioSessionTrackSerializer - queryset = models.RadioSessionTrack.objects.all() + serializer_class = serializers.RadioSessionSerializer + queryset = models.RadioSession.objects.all() permission_classes = [] - @extend_schema(operation_id="get_radio_tracks_get") - def list(self, request, *args, **kwargs): + @action(detail=True, serializer_class=serializers.RadioSessionTrackSerializer) + def tracks(self, request, *args, **kwargs): + """Returns tracks for the given radio session""" serializer = self.get_serializer(data=request.query_params) serializer.is_valid(raise_exception=True) session = serializer.validated_data["session"]