mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 00:24:54 +00:00
jira-5 google login
This commit is contained in:
@ -13,6 +13,21 @@ from rest_framework.decorators import action
|
||||
from django.contrib.auth import authenticate, login
|
||||
from rest_framework_simplejwt.tokens import RefreshToken
|
||||
|
||||
class GoogleSignInSerializer(serializers.Serializer):
|
||||
"""Google login Serializer"""
|
||||
|
||||
def create(self, validated_data):
|
||||
"""Create or update user model"""
|
||||
with transaction.atomic():
|
||||
print()
|
||||
if User.objects.filter(email__iexact=self.validated_data['email']).exists():
|
||||
return User.objects.get(email__iexact=self.validated_data['email'])
|
||||
|
||||
if not User.objects.filter(email__iexact=self.validated_data['email']).exists():
|
||||
instance = User.objects.create(username=self.validated_data['email'],
|
||||
email=self.validated_data['email'])
|
||||
return instance
|
||||
|
||||
|
||||
class ResetPasswordSerializer(serializers.Serializer):
|
||||
"""Reset Password after verification"""
|
||||
|
||||
@ -8,7 +8,8 @@ from junior.models import Junior
|
||||
from account.models import UserProfile, UserPhoneOtp, UserEmailOtp
|
||||
from django.contrib.auth.models import User
|
||||
from .serializers import (SuperUserSerializer, GuardianSerializer, JuniorSerializer, EmailVerificationSerializer,
|
||||
ForgotPasswordSerializer, ResetPasswordSerializer, ChangePasswordSerializer)
|
||||
ForgotPasswordSerializer, ResetPasswordSerializer, ChangePasswordSerializer,
|
||||
GoogleSignInSerializer)
|
||||
from rest_framework_simplejwt.tokens import RefreshToken
|
||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||
from guardian.tasks import generate_otp
|
||||
@ -23,7 +24,23 @@ from templated_email import send_templated_mail
|
||||
|
||||
class GoogleLoginAPIViewset(viewsets.ModelViewSet):
|
||||
"""Google Login"""
|
||||
serializer_class = SocialSignInSerializer
|
||||
serializer_class = GoogleSignInSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
"""
|
||||
Override default behaviour of create method
|
||||
"""
|
||||
provider_type = []
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
provider = self.get_provider_view(request.data.get('provider'))
|
||||
# if User is not authenticated then send error message
|
||||
if not provider.is_authenticated(request):
|
||||
return custom_error_response({}, status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
user = serializer.save()
|
||||
if User.objects.filter(email__iexact=user.email).exists():
|
||||
|
||||
|
||||
|
||||
class ChangePasswordAPIView(views.APIView):
|
||||
|
||||
Reference in New Issue
Block a user