mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-26 08:34:55 +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 django.contrib.auth import authenticate, login
|
||||||
from rest_framework_simplejwt.tokens import RefreshToken
|
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):
|
class ResetPasswordSerializer(serializers.Serializer):
|
||||||
"""Reset Password after verification"""
|
"""Reset Password after verification"""
|
||||||
|
|||||||
@ -8,7 +8,8 @@ from junior.models import Junior
|
|||||||
from account.models import UserProfile, UserPhoneOtp, UserEmailOtp
|
from account.models import UserProfile, UserPhoneOtp, UserEmailOtp
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from .serializers import (SuperUserSerializer, GuardianSerializer, JuniorSerializer, EmailVerificationSerializer,
|
from .serializers import (SuperUserSerializer, GuardianSerializer, JuniorSerializer, EmailVerificationSerializer,
|
||||||
ForgotPasswordSerializer, ResetPasswordSerializer, ChangePasswordSerializer)
|
ForgotPasswordSerializer, ResetPasswordSerializer, ChangePasswordSerializer,
|
||||||
|
GoogleSignInSerializer)
|
||||||
from rest_framework_simplejwt.tokens import RefreshToken
|
from rest_framework_simplejwt.tokens import RefreshToken
|
||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
from guardian.tasks import generate_otp
|
from guardian.tasks import generate_otp
|
||||||
@ -23,7 +24,23 @@ from templated_email import send_templated_mail
|
|||||||
|
|
||||||
class GoogleLoginAPIViewset(viewsets.ModelViewSet):
|
class GoogleLoginAPIViewset(viewsets.ModelViewSet):
|
||||||
"""Google Login"""
|
"""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):
|
class ChangePasswordAPIView(views.APIView):
|
||||||
|
|||||||
Reference in New Issue
Block a user