initial API views
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
from itertools import permutations
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.authentication import SessionAuthentication
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from playlist.models import Artist
|
||||
from playlist.serializers import ArtistSerializer
|
||||
|
||||
class ArtistListView(APIView):
|
||||
authentication_classes = [SessionAuthentication]
|
||||
permission_classes = [IsAuthenticated]
|
||||
|
||||
def get(self, request):
|
||||
artists = Artist.objects.all()
|
||||
serializer = ArtistSerializer(artists, many=True, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
|
||||
class ArtistDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
artist = Artist.objects.get(pk=id)
|
||||
serializer = ArtistSerializer(artist, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
@@ -0,0 +1,11 @@
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.response import Response
|
||||
from rest_framework.reverse import reverse
|
||||
|
||||
|
||||
@api_view(['GET'])
|
||||
def api_root(request, format=None):
|
||||
return Response({
|
||||
'tracks': reverse('api-tracks', request=request, format=format),
|
||||
'artists': reverse('api-artists', request=request, format=format)
|
||||
})
|
||||
@@ -0,0 +1,34 @@
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.response import Response
|
||||
from playlist.models import Track
|
||||
from playlist.serializers import TrackSerializer
|
||||
|
||||
class TrackViewSet(viewsets.ModelViewSet):
|
||||
queryset = Track.objects.all()
|
||||
serializer_class = TrackSerializer
|
||||
|
||||
class TrackListView(APIView):
|
||||
def get(self, request):
|
||||
tracks = Track.objects.all()
|
||||
serializer = TrackSerializer(tracks, many=True, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
|
||||
class TrackDetailView(APIView):
|
||||
def get(self, request, id):
|
||||
track = Track.objects.get(pk=id)
|
||||
serializer = TrackSerializer(track, context={'request': request})
|
||||
return Response(serializer.data)
|
||||
def put(self, request, id):
|
||||
track = Track.objects.get(pk=id)
|
||||
serializer = TrackSerializer(track, data=request.data, context={'request': request})
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
return Response(serializer.errors, status=400)
|
||||
def post(self, request):
|
||||
serializer = TrackSerializer(data=request.data, context={'request': request})
|
||||
if serializer.is_valid():
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
return Response(serializer.errors, status=400)
|
||||
Reference in New Issue
Block a user