mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-14 09:37:20 +00:00
60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
"""
|
|
web_admin auth views file
|
|
"""
|
|
# django imports
|
|
from rest_framework.viewsets import GenericViewSet
|
|
from rest_framework.decorators import action
|
|
from django.contrib.auth import get_user_model
|
|
|
|
# local imports
|
|
from account.utils import custom_response
|
|
from base.messages import SUCCESS_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)
|
|
serializer.is_valid(raise_exception=True)
|
|
serializer.save()
|
|
return custom_response(SUCCESS_CODE['3015'])
|
|
|
|
@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)
|
|
serializer.is_valid(raise_exception=True)
|
|
return custom_response(SUCCESS_CODE['3011'])
|
|
|
|
@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)
|
|
serializer.is_valid(raise_exception=True)
|
|
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['3007'])
|