29 lines
980 B
Python
29 lines
980 B
Python
from django.contrib.auth import get_user_model
|
|
|
|
from rest_framework import generics, filters
|
|
from rest_framework.permissions import IsAuthenticated
|
|
|
|
from drf_spectacular.utils import extend_schema
|
|
|
|
from core.apps.accounts.serializers.user import UserSerializer
|
|
from core.apps.accounts.choices.user import RoleChoice
|
|
|
|
User = get_user_model()
|
|
|
|
@extend_schema(tags=['User'])
|
|
class UserListApiView(generics.ListAPIView):
|
|
queryset = User.objects.filter(role=RoleChoice.USER)
|
|
serializer_class = UserSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
filter_backends = [filters.SearchFilter]
|
|
search_fields = ['phone', 'first_name', 'last_name']
|
|
|
|
|
|
@extend_schema(tags=['User'])
|
|
class AdminUserListApiView(generics.ListAPIView):
|
|
queryset = User.objects.exclude(role=RoleChoice.USER)
|
|
serializer_class = UserSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
filter_backends = [filters.SearchFilter]
|
|
search_fields = ['phone', 'first_name', 'last_name']
|