rename to one trip
This commit is contained in:
46
one_trip_api/users/views.py
Normal file
46
one_trip_api/users/views.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from rest_framework import generics, permissions, viewsets, mixins, filters, pagination
|
||||
from rest_framework.response import Response
|
||||
from users.models import *
|
||||
from users.serializers import *
|
||||
|
||||
class Pagination(pagination.PageNumberPagination):
|
||||
page_size = 4
|
||||
|
||||
class IsOwner(permissions.BasePermission):
|
||||
def has_object_permission(self, request, view, obj):
|
||||
if obj == request.user:
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
|
||||
# Anyone can register
|
||||
class UsersListView(mixins.CreateModelMixin, mixins.ListModelMixin, mixins.RetrieveModelMixin, viewsets.GenericViewSet):
|
||||
model = User
|
||||
serializer_class = UserSerializer
|
||||
permission_classes = [permissions.AllowAny]
|
||||
queryset = User.objects.all().order_by("first_name", "last_name", "username")
|
||||
filter_backends = [filters.SearchFilter]
|
||||
search_fields = ["username", "first_name", "last_name"]
|
||||
pagination_class = Pagination
|
||||
|
||||
def get_serializer(self, *args, **kwargs):
|
||||
return super().get_serializer(*args, **kwargs)
|
||||
|
||||
|
||||
# Allows user to modify their own data only
|
||||
class ModifyUserView(generics.RetrieveUpdateDestroyAPIView):
|
||||
permission_classes = [
|
||||
permissions.IsAuthenticated,
|
||||
IsOwner
|
||||
]
|
||||
model = User
|
||||
serializer_class = UserSerializer
|
||||
|
||||
def get_object(self):
|
||||
return User.objects.get(pk=self.request.user.id)
|
||||
|
||||
def retrieve(self, request, *args, **kwargs):
|
||||
user = User.objects.get(pk=request.user.id)
|
||||
serializer = UserSerializer(user, context={"request":request})
|
||||
return Response(serializer.data)
|
||||
Reference in New Issue
Block a user