from rest_framework import permissions
from knox.models import AuthToken
from rest_framework.response import Response
from rest_framework import status
from rest_framework.views import APIView
from account.serializers.reset_password import ResetPasswordSerializer





class ResetPasswordView(APIView):
    permission_classes = (permissions.IsAuthenticated,)
    def post(self, request):
        user = request.user
        serializer = ResetPasswordSerializer(data=request.data, context={"user": user})
        serializer.is_valid(raise_exception=True)
        user.set_password(serializer.validated_data["password1"])
        user.save()
        tokens = AuthToken.objects.filter(user=user)
        tokens.delete()
        return Response("Password Changed", status=status.HTTP_200_OK)
        
