nu met de juiste files toegevoegd
This commit is contained in:
@@ -2,16 +2,6 @@ from django.contrib.auth.models import User
|
||||
from rest_framework import serializers
|
||||
|
||||
class UserSerializer(serializers.HyperlinkedModelSerializer):
|
||||
# Add explicit reverse lookup to profile
|
||||
profile = serializers.HyperlinkedRelatedField(
|
||||
view_name='api-profile',
|
||||
lookup_field='id',
|
||||
read_only=True
|
||||
)
|
||||
|
||||
class Meta:
|
||||
model = User
|
||||
fields = ['url', 'id', 'username', 'email', 'profile']
|
||||
extra_kwargs = {
|
||||
'url': {'view_name': 'api-user', 'lookup_field': 'id'}
|
||||
}
|
||||
fields = ['id', 'username', 'email']
|
||||
|
||||
@@ -19,11 +19,7 @@ urlpatterns = [
|
||||
path('api/vote/', views.VoteListView.as_view(), name="api-votes"),
|
||||
path('api/vote/<id>', views.VoteDetailView.as_view(), name="api-vote"),
|
||||
path('api/user/', views.UserListView.as_view(), name="api-users"),
|
||||
path('api/user/<int:id>', views.UserDetailView.as_view(), name="api-user"),
|
||||
path('api/user/<int:user_id>/votes', views.VoteListView.as_view(), name="api-user-votes"),
|
||||
path('api/profile/<int:id>', views.ProfileDetailView.as_view(), name="api-profile"),
|
||||
path('api/profile/background', views.BackgroundListView.as_view(), name="api-backgrounds"),
|
||||
path('api/profile/background/<int:id>', views.BackgroundDetailView.as_view(), name="api-background"),
|
||||
path('api/profile/me', views.ProfileMeView.as_view(), name="api-profile-me"),
|
||||
|
||||
### Classic
|
||||
path('track/', views.NominateView.as_view(), name="nominate"),
|
||||
|
||||
@@ -5,28 +5,8 @@ from rest_framework.response import Response
|
||||
from playlist.serializers import ProfileSerializer, ProfileUpdateSerializer, BackgroundSerializer
|
||||
from playlist.models import Profile, Background
|
||||
|
||||
class ProfileDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
profile = Profile.objects.get(pk=id)
|
||||
class ProfileMeView(APIView):
|
||||
def get(self, request):
|
||||
profile = request.user.profile
|
||||
serializer = ProfileSerializer(profile)
|
||||
return Response(serializer.data)
|
||||
|
||||
def put(self, request, id):
|
||||
profile = Profile.objects.get(pk=id)
|
||||
serializer = ProfileUpdateSerializer(profile, data=request.data)
|
||||
serializer.is_valid()
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
#return Response()
|
||||
|
||||
class BackgroundListView(APIView):
|
||||
def get(self, request):
|
||||
backgrounds = Background.objects.all()
|
||||
serializer = BackgroundSerializer(backgrounds, many=True)
|
||||
return Response(serializer.data)
|
||||
|
||||
class BackgroundDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
background = Background.objects.get(pk=id)
|
||||
serializer = BackgroundSerializer(background)
|
||||
return Response(serializer.data)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from json.decoder import JSONDecodeError
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from playlist.models import Track, Profile
|
||||
@@ -74,7 +75,16 @@ class TrackVoteView(APIView):
|
||||
)
|
||||
def get(self, request):
|
||||
# TODO implement a session-based vote tracking system. Random return for now.
|
||||
random_pk = choice(Track.objects.values_list('pk', flat=True))
|
||||
track_pks = Track.objects.values_list('pk', flat=True)
|
||||
if not track_pks:
|
||||
dummy = {
|
||||
"name": "Dummy",
|
||||
"artist": "Dummy",
|
||||
"album_cover": "/meowl.png"
|
||||
}
|
||||
return Response(dummy)
|
||||
|
||||
random_pk = choice(track_pks)
|
||||
track = Track.objects.get(pk=random_pk)
|
||||
serializer = TrackSerializer(track, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
|
||||
Reference in New Issue
Block a user