from django.shortcuts import render from rest_framework import (pagination, viewsets, status, generics, mixins) from .serializers import CreateGuardianSerializer from rest_framework.decorators import action from rest_framework.response import Response from django.views.decorators.csrf import csrf_exempt # Create your views here. from rest_framework import viewsets, status from rest_framework.response import Response from .serializers import UserSerializer from django.contrib.auth.models import User from rest_framework.permissions import IsAuthenticated from base.constants import GUARDIAN, JUNIOR, SUPERUSER from junior.models import Junior 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 class SignupViewset(viewsets.ModelViewSet): serializer_class = UserSerializer def create(self, request, *args, **kwargs): serializer = UserSerializer(context=request.data['user_type'], data=request.data) if serializer.is_valid(): serializer.save() otp = generate_otp() UserEmailOtp.objects.create(email=request.data['email'], otp=otp) 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): serializer_class = CreateGuardianSerializer permission_classes = [IsAuthenticated] def create(self, request, *args, **kwargs): 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(): 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)