Gallery-Archivist/backend/api/user/views.py
2025-02-02 23:45:29 +01:00

45 lines
1.4 KiB
Python

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)