""" 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'])