diff --git a/web_admin/serializers/auth_serializer.py b/web_admin/serializers/auth_serializer.py index 249340b..511d344 100644 --- a/web_admin/serializers/auth_serializer.py +++ b/web_admin/serializers/auth_serializer.py @@ -36,9 +36,9 @@ class AdminOTPSerializer(serializers.ModelSerializer): """ used to validate the incoming data """ user = USER.objects.filter(email=attrs.get('email')).first() if not user: - raise serializers.ValidationError(ERROR_CODE['2004']) + raise serializers.ValidationError({'details': ERROR_CODE['2004']}) elif not user.is_superuser: - raise serializers.ValidationError(ERROR_CODE['2063']) + raise serializers.ValidationError({'details': ERROR_CODE['2063']}) attrs.update({'user': user}) return attrs @@ -87,11 +87,11 @@ class AdminVerifyOTPSerializer(serializers.Serializer): # fetch email otp object of the user user_otp_details = UserEmailOtp.objects.filter(email=email, otp=otp).last() if not user_otp_details: - raise serializers.ValidationError(ERROR_CODE['2064']) + raise serializers.ValidationError({'details': ERROR_CODE['2064']}) if user_otp_details.user_type != dict(USER_TYPE).get('3'): - raise serializers.ValidationError(ERROR_CODE['2063']) + raise serializers.ValidationError({'details': ERROR_CODE['2063']}) if user_otp_details.expired_at.replace(tzinfo=None) < datetime.utcnow(): - raise serializers.ValidationError(ERROR_CODE['2029']) + raise serializers.ValidationError({'details': ERROR_CODE['2029']}) user_otp_details.is_verified = True user_otp_details.save() return attrs @@ -123,14 +123,14 @@ class AdminCreatePasswordSerializer(serializers.ModelSerializer): # matching password if new_password != confirm_password: - raise serializers.ValidationError(ERROR_CODE['2065']) + raise serializers.ValidationError({'details': ERROR_CODE['2065']}) user_otp_details = UserEmailOtp.objects.filter(email=email).last() if not user_otp_details: - raise serializers.ValidationError(ERROR_CODE['2064']) + raise serializers.ValidationError({'details': ERROR_CODE['2064']}) if user_otp_details.user_type != dict(USER_TYPE).get('3'): - raise serializers.ValidationError(ERROR_CODE['2063']) + raise serializers.ValidationError({'details': ERROR_CODE['2063']}) if not user_otp_details.is_verified: - raise serializers.ValidationError(ERROR_CODE['2064']) + raise serializers.ValidationError({'details': ERROR_CODE['2064']}) user_otp_details.delete() return attrs diff --git a/web_admin/views/auth.py b/web_admin/views/auth.py index 009d7db..0273a08 100644 --- a/web_admin/views/auth.py +++ b/web_admin/views/auth.py @@ -4,11 +4,12 @@ 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 -from base.messages import SUCCESS_CODE +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) @@ -29,9 +30,10 @@ class ForgotAndResetPasswordViewSet(GenericViewSet): :return: success message """ serializer = self.serializer_class(data=request.data) - serializer.is_valid(raise_exception=True) - serializer.save() - return custom_response(SUCCESS_CODE['3015']) + if serializer.is_valid(): + serializer.save() + return custom_response(SUCCESS_CODE['3015']) + return custom_error_response(ERROR_CODE['2063'], status.HTTP_400_BAD_REQUEST) @action(methods=['post'], url_name='verify-otp', url_path='verify-otp', detail=False, serializer_class=AdminVerifyOTPSerializer) @@ -41,8 +43,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet): :return: success message """ serializer = self.serializer_class(data=request.data) - serializer.is_valid(raise_exception=True) - return custom_response(SUCCESS_CODE['3011']) + if serializer.is_valid(): + return custom_response(SUCCESS_CODE['3011']) + return custom_error_response(ERROR_CODE['2063'], status.HTTP_400_BAD_REQUEST) @action(methods=['post'], url_name='create-password', url_path='create-password', detail=False, serializer_class=AdminCreatePasswordSerializer) @@ -52,8 +55,9 @@ class ForgotAndResetPasswordViewSet(GenericViewSet): :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']) + 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['3007']) + return custom_error_response(ERROR_CODE['2064'], status.HTTP_400_BAD_REQUEST)