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