Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Maxence Bothorel
funkwhale
Commits
71d46e43
Verified
Commit
71d46e43
authored
Mar 21, 2018
by
Eliot Berriot
Browse files
Simplified playlist serializer and ensure update return same payload as detail
parent
6a9a34d2
Changes
3
Hide whitespace changes
Inline
Side-by-side
api/funkwhale_api/playlists/serializers.py
View file @
71d46e43
...
...
@@ -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'
,]
...
...
api/funkwhale_api/playlists/views.py
View file @
71d46e43
...
...
@@ -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
()
...
...
api/tests/playlists/test_views.py
View file @
71d46e43
...
...
@@ -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
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment