mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-08-26 06:09:41 +00:00
google login with user type and is published article only display
This commit is contained in:
@ -51,7 +51,8 @@ class GoogleLoginMixin(object):
|
|||||||
def google_login(request):
|
def google_login(request):
|
||||||
"""google login function"""
|
"""google login function"""
|
||||||
access_token = request.data.get('access_token')
|
access_token = request.data.get('access_token')
|
||||||
user_type = request.data.get('user_type')
|
user_type = request.META.get('HTTP_USER_TYPE')
|
||||||
|
device_id = request.META.get('HTTP_DEVICE_ID')
|
||||||
if not access_token:
|
if not access_token:
|
||||||
return Response({'error': 'Access token is required.'}, status=status.HTTP_400_BAD_REQUEST)
|
return Response({'error': 'Access token is required.'}, status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
@ -84,14 +85,24 @@ class GoogleLoginMixin(object):
|
|||||||
if user_data.exists():
|
if user_data.exists():
|
||||||
if str(user_type) == '1':
|
if str(user_type) == '1':
|
||||||
junior_query = Junior.objects.filter(auth=user_data.last()).last()
|
junior_query = Junior.objects.filter(auth=user_data.last()).last()
|
||||||
|
if not junior_query:
|
||||||
|
return custom_error_response(
|
||||||
|
ERROR_CODE["2071"],
|
||||||
|
response_status=status.HTTP_400_BAD_REQUEST
|
||||||
|
)
|
||||||
serializer = JuniorSerializer(junior_query)
|
serializer = JuniorSerializer(junior_query)
|
||||||
if str(user_type) == '2':
|
if str(user_type) == '2':
|
||||||
guardian_query = Guardian.objects.filter(user=user_data.last()).last()
|
guardian_query = Guardian.objects.filter(user=user_data.last()).last()
|
||||||
|
if not guardian_query:
|
||||||
|
return custom_error_response(
|
||||||
|
ERROR_CODE["2070"],
|
||||||
|
response_status=status.HTTP_400_BAD_REQUEST
|
||||||
|
)
|
||||||
serializer = GuardianSerializer(guardian_query)
|
serializer = GuardianSerializer(guardian_query)
|
||||||
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
||||||
response_status=status.HTTP_200_OK)
|
response_status=status.HTTP_200_OK)
|
||||||
|
|
||||||
if not User.objects.filter(email__iexact=email).exists():
|
else:
|
||||||
user_obj = User.objects.create(username=email, email=email, first_name=first_name, last_name=last_name)
|
user_obj = User.objects.create(username=email, email=email, first_name=first_name, last_name=last_name)
|
||||||
if str(user_type) == '1':
|
if str(user_type) == '1':
|
||||||
junior_query = Junior.objects.create(auth=user_obj, is_verified=True, is_active=True,
|
junior_query = Junior.objects.create(auth=user_obj, is_verified=True, is_active=True,
|
||||||
@ -109,6 +120,10 @@ class GoogleLoginMixin(object):
|
|||||||
referral_code=generate_code(ZOD, user_obj.id)
|
referral_code=generate_code(ZOD, user_obj.id)
|
||||||
)
|
)
|
||||||
serializer = GuardianSerializer(guardian_query)
|
serializer = GuardianSerializer(guardian_query)
|
||||||
|
device_detail, created = UserDeviceDetails.objects.get_or_create(user=user_obj)
|
||||||
|
if device_detail:
|
||||||
|
device_detail.device_id = device_id
|
||||||
|
device_detail.save()
|
||||||
# Return a JSON response with the user's email and name
|
# Return a JSON response with the user's email and name
|
||||||
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
||||||
response_status=status.HTTP_200_OK)
|
response_status=status.HTTP_200_OK)
|
||||||
@ -137,7 +152,8 @@ class SigninWithApple(views.APIView):
|
|||||||
}"""
|
}"""
|
||||||
def post(self, request):
|
def post(self, request):
|
||||||
token = request.data.get("access_token")
|
token = request.data.get("access_token")
|
||||||
user_type = request.data.get("user_type")
|
user_type = request.META.get('HTTP_USER_TYPE')
|
||||||
|
device_id = request.META.get('HTTP_DEVICE_ID')
|
||||||
try:
|
try:
|
||||||
decoded_data = jwt.decode(token, options={"verify_signature": False})
|
decoded_data = jwt.decode(token, options={"verify_signature": False})
|
||||||
user_data = {"email": decoded_data.get('email'), "username": decoded_data.get('email'), "is_active": True}
|
user_data = {"email": decoded_data.get('email'), "username": decoded_data.get('email'), "is_active": True}
|
||||||
@ -145,11 +161,21 @@ class SigninWithApple(views.APIView):
|
|||||||
try:
|
try:
|
||||||
user = User.objects.get(email=decoded_data.get("email"))
|
user = User.objects.get(email=decoded_data.get("email"))
|
||||||
if str(user_type) == '1':
|
if str(user_type) == '1':
|
||||||
junior_query = Junior.objects.filter(auth=user).last()
|
junior_data = Junior.objects.filter(auth=user).last()
|
||||||
serializer = JuniorSerializer(junior_query)
|
if not junior_data:
|
||||||
|
return custom_error_response(
|
||||||
|
ERROR_CODE["2071"],
|
||||||
|
response_status=status.HTTP_400_BAD_REQUEST
|
||||||
|
)
|
||||||
|
serializer = JuniorSerializer(junior_data)
|
||||||
if str(user_type) == '2':
|
if str(user_type) == '2':
|
||||||
guardian_query = Guardian.objects.filter(user=user).last()
|
guardian_data = Guardian.objects.filter(user=user).last()
|
||||||
serializer = GuardianSerializer(guardian_query)
|
if not guardian_data:
|
||||||
|
return custom_error_response(
|
||||||
|
ERROR_CODE["2070"],
|
||||||
|
response_status=status.HTTP_400_BAD_REQUEST
|
||||||
|
)
|
||||||
|
serializer = GuardianSerializer(guardian_data)
|
||||||
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
||||||
response_status=status.HTTP_200_OK)
|
response_status=status.HTTP_200_OK)
|
||||||
|
|
||||||
@ -169,6 +195,10 @@ class SigninWithApple(views.APIView):
|
|||||||
guardian_code=generate_code(GRD, user.id),
|
guardian_code=generate_code(GRD, user.id),
|
||||||
referral_code=generate_code(ZOD, user.id))
|
referral_code=generate_code(ZOD, user.id))
|
||||||
serializer = GuardianSerializer(guardian_query)
|
serializer = GuardianSerializer(guardian_query)
|
||||||
|
device_detail, created = UserDeviceDetails.objects.get_or_create(user=user_obj)
|
||||||
|
if device_detail:
|
||||||
|
device_detail.device_id = device_id
|
||||||
|
device_detail.save()
|
||||||
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
return custom_response(SUCCESS_CODE['3003'], serializer.data,
|
||||||
response_status=status.HTTP_200_OK)
|
response_status=status.HTTP_200_OK)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
@ -229,7 +229,7 @@ class ArticleListViewSet(GenericViewSet, mixins.ListModelMixin):
|
|||||||
http_method_names = ['get',]
|
http_method_names = ['get',]
|
||||||
|
|
||||||
def get_queryset(self):
|
def get_queryset(self):
|
||||||
article = self.queryset.objects.filter(is_deleted=False).prefetch_related(
|
article = self.queryset.objects.filter(is_deleted=False, is_published=True).prefetch_related(
|
||||||
'article_cards', 'article_survey', 'article_survey__options'
|
'article_cards', 'article_survey', 'article_survey__options'
|
||||||
).order_by('-created_at')
|
).order_by('-created_at')
|
||||||
queryset = self.filter_queryset(article)
|
queryset = self.filter_queryset(article)
|
||||||
|
Reference in New Issue
Block a user