diff --git a/api/funkwhale_api/playlists/serializers.py b/api/funkwhale_api/playlists/serializers.py index 2f71c8239c5fa48949afaa36d5cf2bf71daead58..ebbbae0b07e98e8e8f975d64a7e030c9880016bd 100644 --- a/api/funkwhale_api/playlists/serializers.py +++ b/api/funkwhale_api/playlists/serializers.py @@ -62,34 +62,20 @@ class PlaylistTrackWriteSerializer(serializers.ModelSerializer): return [] -class PlaylistWriteSerializer(serializers.ModelSerializer): - - class Meta: - model = models.Playlist - fields = [ - 'id', - 'name', - 'privacy_level', - ] - - class PlaylistSerializer(serializers.ModelSerializer): - tracks_count = serializers.SerializerMethodField() - user = UserBasicSerializer() + tracks_count = serializers.SerializerMethodField(read_only=True) + user = UserBasicSerializer(read_only=True) class Meta: model = models.Playlist fields = ( 'id', 'name', - 'user', 'tracks_count', - 'privacy_level', - 'creation_date', - 'modification_date') + 'user', + 'privacy_level',) read_only_fields = [ 'id', - 'user', 'modification_date', 'creation_date',] diff --git a/api/funkwhale_api/playlists/views.py b/api/funkwhale_api/playlists/views.py index 7b2e7651d3a7876273fef816e44a85771cc32cf0..683f90388885ecb5337bed10b16ef3c7d9b866a4 100644 --- a/api/funkwhale_api/playlists/views.py +++ b/api/funkwhale_api/playlists/views.py @@ -38,11 +38,6 @@ class PlaylistViewSet( filter_class = filters.PlaylistFilter ordering_fields = ('id', 'name', 'creation_date', 'modification_date') - def get_serializer_class(self): - if self.request.method in ['PUT', 'PATCH', 'DELETE', 'POST']: - return serializers.PlaylistWriteSerializer - return self.serializer_class - @detail_route(methods=['get']) def tracks(self, request, *args, **kwargs): playlist = self.get_object() diff --git a/api/tests/playlists/test_views.py b/api/tests/playlists/test_views.py index e70fef6f0da6b22bc22df90c924a86e82207c95c..5bf83488859177aaf4e756a5f25668f568641b35 100644 --- a/api/tests/playlists/test_views.py +++ b/api/tests/playlists/test_views.py @@ -182,3 +182,16 @@ def test_can_clear_playlist_from_api( assert response.status_code == 204 assert playlist.playlist_tracks.count() == 0 + + +def test_update_playlist_from_api( + factories, mocker, logged_in_api_client): + playlist = factories['playlists.Playlist'](user=logged_in_api_client.user) + plts = factories['playlists.PlaylistTrack'].create_batch( + size=5, playlist=playlist) + url = reverse('api:v1:playlists-detail', kwargs={'pk': playlist.pk}) + response = logged_in_api_client.patch(url, {'name': 'test'}) + playlist.refresh_from_db() + + assert response.status_code == 200 + assert response.data['user']['username'] == playlist.user.username