"""Views of Guardian""" """Third party Django app""" from rest_framework.permissions import IsAuthenticated from rest_framework import viewsets, status """Import Django app""" from .serializers import UserSerializer from .serializers import CreateGuardianSerializer from account.models import UserEmailOtp from .tasks import generate_otp from account.utils import send_otp_email from account.utils import custom_response, custom_error_response from base.messages import ERROR_CODE, SUCCESS_CODE # Create your views here. class SignupViewset(viewsets.ModelViewSet): """Signup view set""" serializer_class = UserSerializer def create(self, request, *args, **kwargs): """Create user profile""" serializer = UserSerializer(context=request.data['user_type'], data=request.data) if serializer.is_valid(): serializer.save() """Generate otp""" otp = generate_otp() UserEmailOtp.objects.create(email=request.data['email'], otp=otp) """Send email to the register user""" send_otp_email(request.data['email'], otp) return custom_response(SUCCESS_CODE['3001'], {"email_otp": otp}, response_status=status.HTTP_200_OK) return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST) class UpdateGuardianProfile(viewsets.ViewSet): """Update guardian profile""" serializer_class = CreateGuardianSerializer permission_classes = [IsAuthenticated] def create(self, request, *args, **kwargs): """Create guardian profile""" serializer = CreateGuardianSerializer(context={"user":request.user, "first_name":request.data.get('first_name', ''), "last_name": request.data.get('last_name',' ')}, data=request.data) if serializer.is_valid(): """save serializer""" serializer.save() return custom_response(None, serializer.data,response_status=status.HTTP_200_OK) return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)