from rest_framework.authtoken.models import Token
from rest_framework.authtoken.views import ObtainAuthToken
from rest_framework.generics import CreateAPIView, ListAPIView
from rest_framework.response import Response
from .models import CustomUser
from .serializers import CustomUserSerializer, UserLoginSerializer
class ListUsers(ListAPIView):
queryset = CustomUser.objects.all()
serializer_class = CustomUserSerializer
class RegisterUser(CreateAPIView):
queryset = CustomUser.objects.all()
serializer_class = CustomUserSerializer
class LoginView(ObtainAuthToken):
def post(self, request, *args, **kwargs):
serializer = UserLoginSerializer(data=request.data)
serializer.is_valid(raise_exception=True)
user = serializer.validated_data["username"]
token, created = Token.objects.get_or_create(user=user)
return Response({"token": token.key, "user_id": user.pk, "email": user.email})