from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView from rest_framework_simplejwt.tokens import RefreshToken from .serializers import UserSerializer # Logout View class LogoutView(APIView): permission_classes = [IsAuthenticated] def post(self, request): try: refresh_token = request.data["refresh"] token = RefreshToken(refresh_token) token.blacklist() return Response({"message": "Logout successful"}) except Exception as e: return Response({"error": str(e)}, status=400) class ProfileView(APIView): permission_classes = [IsAuthenticated] def get(self, request): user = request.user serializer = UserSerializer(user) return Response(serializer.data) def patch(self, request): user = request.user serializer = UserSerializer(user, data=request.data, partial=True) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=400) def put(self, request): user = request.user serializer = UserSerializer(user, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=400)