Files
ferglie/shortio/api.py
Fergal Moran 0c4e910b9e MVP Done
2017-05-09 23:31:55 +01:00

45 lines
1.0 KiB
Python
Executable File

from rest_framework import generics, permissions
from shorts.permissions import UrlAuthorCanEditPermission
from .models import User, Url
from .serializers import UserSerializer, UrlSerializer
class UserList(generics.ListCreateAPIView):
model = User
serializer_class = UserSerializer
permissions_classess = [
permissions.AllowAny
]
class UserDetail(generics.RetrieveAPIView):
model = User
serializer_class = UserSerializer
lookup_field = 'username'
class UrlMixin(object):
model = Url
serializer_class = UrlSerializer
permission_classes = [
UrlAuthorCanEditPermission
]
class UrlList(UrlMixin, generics.ListCreateAPIView):
pass
class UrlDetail(UrlMixin, generics.RetrieveUpdateDestroyAPIView):
pass
class UserUrlList(generics.ListAPIView):
model = Url
serializer_class = UrlSerializer
def get_queryset(self):
queryset = super(UserUrlList, self).get_queryset()
return queryset.filter(user__username=self.kwargs.get('username'))