Files
zod-backend/web_admin/views/auth.py
2023-08-09 14:16:20 +05:30

64 lines
2.4 KiB
Python

"""
web_admin auth views file
"""
# django imports
from rest_framework.viewsets import GenericViewSet
from rest_framework.decorators import action
from rest_framework import status
from django.contrib.auth import get_user_model
# local imports
from account.utils import custom_response, custom_error_response
from base.messages import SUCCESS_CODE, ERROR_CODE
from web_admin.serializers.auth_serializer import (AdminOTPSerializer, AdminVerifyOTPSerializer,
AdminCreatePasswordSerializer)
USER = get_user_model()
class ForgotAndResetPasswordViewSet(GenericViewSet):
"""
to reset admin password
"""
queryset = None
@action(methods=['post'], url_name='otp', url_path='otp',
detail=False, serializer_class=AdminOTPSerializer)
def admin_otp(self, request):
"""
api method to send otp
:return: success message
"""
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
serializer.save()
return custom_response(SUCCESS_CODE['3015'])
return custom_error_response(ERROR_CODE['2000'], status.HTTP_400_BAD_REQUEST)
@action(methods=['post'], url_name='verify-otp', url_path='verify-otp',
detail=False, serializer_class=AdminVerifyOTPSerializer)
def admin_verify_otp(self, request):
"""
api method to verify otp
:return: success message
"""
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
return custom_response(SUCCESS_CODE['3011'])
return custom_error_response(ERROR_CODE['2008'], status.HTTP_400_BAD_REQUEST)
@action(methods=['post'], url_name='create-password', url_path='create-password',
detail=False, serializer_class=AdminCreatePasswordSerializer)
def admin_create_password(self, request):
"""
api method to create new password
:return: success message
"""
serializer = self.serializer_class(data=request.data)
if serializer.is_valid():
user = USER.objects.filter(email=serializer.validated_data.get('email')).first()
user.set_password(serializer.validated_data.get('new_password'))
user.save()
return custom_response(SUCCESS_CODE['3006'])
return custom_error_response(ERROR_CODE['2064'], status.HTTP_400_BAD_REQUEST)