nabilah_argyanti_ardyningrum/backend/easycookapi-main/accounts/views.py
2024-12-31 09:49:01 +07:00

52 lines
1.7 KiB
Python

from django.contrib.auth import authenticate, logout
from rest_framework import generics, permissions
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.permissions import IsAuthenticated
from rest_framework.authtoken.models import Token
from profiles.models import Account
from .serializers import RegisterSerializer
class RegisterView(generics.CreateAPIView):
serializer_class = RegisterSerializer
def post(self, request):
serializer = self.get_serializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
else:
return Response(serializer.errors, status=400)
class LoginView(APIView):
def post(self, request):
username = request.data.get('username')
password = request.data.get('password')
user = authenticate(username=username, password=password)
if user is not None:
token, _ = Token.objects.get_or_create(user=user)
return Response({'token': token.key})
else:
return Response({'message': 'Username atau password salah.'}, status=400)
class LogoutView(generics.CreateAPIView):
permission_classes = (IsAuthenticated,)
def post(self, request):
request.user.auth_token.delete()
logout(request)
return Response({'message': 'Berhasil log out.'})
class ForgotPasswordView(generics.GenericAPIView):
permission_classes = (permissions.AllowAny,)
def post(self, request, format=None):
# Implementation for forgot password feature
return Response("Forgot password implementation goes here")