mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 18:36:18 +00:00
referral code
This commit is contained in:
@ -27,7 +27,8 @@ from rest_framework_simplejwt.tokens import RefreshToken
|
|||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
from base.constants import NUMBER
|
from base.constants import NUMBER
|
||||||
from guardian.tasks import generate_otp
|
from guardian.tasks import generate_otp
|
||||||
from account.utils import send_otp_email, send_support_email, custom_response, custom_error_response
|
from account.utils import (send_otp_email, send_support_email, custom_response, custom_error_response,
|
||||||
|
generate_alphanumeric_code)
|
||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from templated_email import send_templated_mail
|
from templated_email import send_templated_mail
|
||||||
import google.oauth2.credentials
|
import google.oauth2.credentials
|
||||||
@ -89,19 +90,15 @@ class GoogleLoginMixin:
|
|||||||
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,
|
||||||
image=profile_picture, signup_method='2',
|
image=profile_picture, signup_method='2',
|
||||||
junior_code=''.join(
|
junior_code=generate_alphanumeric_code(6),
|
||||||
[str(random.randrange(9)) for _ in range(6)]),
|
referral_code=generate_alphanumeric_code(6)
|
||||||
referral_code=''.join(
|
|
||||||
[str(random.randrange(9)) for _ in range(6)])
|
|
||||||
)
|
)
|
||||||
serializer = JuniorSerializer(junior_query)
|
serializer = JuniorSerializer(junior_query)
|
||||||
if str(user_type) == '2':
|
if str(user_type) == '2':
|
||||||
guardian_query = Guardian.objects.create(user=user_obj, is_verified=True, is_active=True,
|
guardian_query = Guardian.objects.create(user=user_obj, is_verified=True, is_active=True,
|
||||||
image=profile_picture,signup_method='2',
|
image=profile_picture,signup_method='2',
|
||||||
guardian_code=''.join(
|
guardian_code=generate_alphanumeric_code(6),
|
||||||
[str(random.randrange(9)) for _ in range(6)]),
|
referral_code=generate_alphanumeric_code(6)
|
||||||
referral_code=''.join(
|
|
||||||
[str(random.randrange(9)) for _ in range(6)])
|
|
||||||
)
|
)
|
||||||
serializer = GuardianSerializer(guardian_query)
|
serializer = GuardianSerializer(guardian_query)
|
||||||
# Return a JSON response with the user's email and name
|
# Return a JSON response with the user's email and name
|
||||||
@ -143,18 +140,15 @@ class SigninWithApple(views.APIView):
|
|||||||
user = User.objects.create(**user_data)
|
user = User.objects.create(**user_data)
|
||||||
if str(user_type) == '1':
|
if str(user_type) == '1':
|
||||||
junior_query = Junior.objects.create(auth=user, is_verified=True, is_active=True,
|
junior_query = Junior.objects.create(auth=user, is_verified=True, is_active=True,
|
||||||
signup_method='3',junior_code=''.join(
|
signup_method='3',
|
||||||
[str(random.randrange(9)) for _ in range(6)]),
|
junior_code=generate_alphanumeric_code(6),
|
||||||
referral_code=''.join(
|
referral_code=generate_alphanumeric_code(6))
|
||||||
[str(random.randrange(9)) for _ in range(6)]))
|
|
||||||
serializer = JuniorSerializer(junior_query)
|
serializer = JuniorSerializer(junior_query)
|
||||||
if str(user_type) == '2':
|
if str(user_type) == '2':
|
||||||
guardian_query = Guardian.objects.create(user=user, is_verified=True, is_active=True,
|
guardian_query = Guardian.objects.create(user=user, is_verified=True, is_active=True,
|
||||||
signup_method='3',
|
signup_method='3',
|
||||||
guardian_code=''.join(
|
guardian_code=generate_alphanumeric_code(6),
|
||||||
[str(random.randrange(9)) for _ in range(6)]),
|
referral_code=generate_alphanumeric_code(6))
|
||||||
referral_code=''.join(
|
|
||||||
[str(random.randrange(9)) for _ in range(6)]))
|
|
||||||
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)
|
||||||
@ -169,7 +163,7 @@ class UpdateProfileImage(views.APIView):
|
|||||||
def put(self, request, format=None):
|
def put(self, request, format=None):
|
||||||
try:
|
try:
|
||||||
image = request.data['image']
|
image = request.data['image']
|
||||||
if image.size == NUMBER['zero']:
|
if image and image.size == NUMBER['zero']:
|
||||||
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
filename = f"images/{image.name}"
|
filename = f"images/{image.name}"
|
||||||
image_url = upload_image_to_alibaba(image, filename)
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
|
@ -9,6 +9,7 @@ from django.contrib.auth.models import User
|
|||||||
"""Import Django app"""
|
"""Import Django app"""
|
||||||
from .models import Guardian, JuniorTask
|
from .models import Guardian, JuniorTask
|
||||||
from account.models import UserProfile, UserEmailOtp, UserNotification
|
from account.models import UserProfile, UserEmailOtp, UserNotification
|
||||||
|
from account.utils import generate_alphanumeric_code
|
||||||
from account.serializers import JuniorSerializer
|
from account.serializers import JuniorSerializer
|
||||||
from junior.serializers import JuniorDetailSerializer
|
from junior.serializers import JuniorDetailSerializer
|
||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
@ -38,11 +39,11 @@ class UserSerializer(serializers.ModelSerializer):
|
|||||||
user = User.objects.create_user(username=email, email=email, password=password)
|
user = User.objects.create_user(username=email, email=email, password=password)
|
||||||
UserNotification.objects.create(user=user)
|
UserNotification.objects.create(user=user)
|
||||||
if user_type == '1':
|
if user_type == '1':
|
||||||
Junior.objects.create(auth=user, junior_code=''.join([str(random.randrange(9)) for _ in range(6)]),
|
Junior.objects.create(auth=user, junior_code=generate_alphanumeric_code(6),
|
||||||
referral_code=''.join([str(random.randrange(9)) for _ in range(6)]))
|
referral_code=generate_alphanumeric_code(6))
|
||||||
if user_type == '2':
|
if user_type == '2':
|
||||||
Guardian.objects.create(user=user, guardian_code=''.join([str(random.randrange(9)) for _ in range(6)]),
|
Guardian.objects.create(user=user, guardian_code=generate_alphanumeric_code(6),
|
||||||
referral_code=''.join([str(random.randrange(9)) for _ in range(6)]))
|
referral_code=generate_alphanumeric_code(6))
|
||||||
return user
|
return user
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
"""Error handling"""
|
"""Error handling"""
|
||||||
@ -99,11 +100,7 @@ class CreateGuardianSerializer(serializers.ModelSerializer):
|
|||||||
user.last_name = self.context.get('last_name')
|
user.last_name = self.context.get('last_name')
|
||||||
user.save()
|
user.save()
|
||||||
"""Create guardian data"""
|
"""Create guardian data"""
|
||||||
guardian, created = Guardian.objects.get_or_create(user=self.context['user'])
|
guardian = Guardian.objects.filter(user=self.context['user']).last()
|
||||||
if created:
|
|
||||||
"""Create referral code and guardian code"""
|
|
||||||
guardian.referral_code = ''.join([str(random.randrange(9)) for _ in range(4)])
|
|
||||||
guardian.guardian_code = ''.join([str(random.randrange(9)) for _ in range(4)])
|
|
||||||
if guardian:
|
if guardian:
|
||||||
"""update details according to the data get from request"""
|
"""update details according to the data get from request"""
|
||||||
guardian.gender = validated_data.get('gender',guardian.gender)
|
guardian.gender = validated_data.get('gender',guardian.gender)
|
||||||
|
@ -56,9 +56,9 @@ class UpdateGuardianProfile(viewsets.ViewSet):
|
|||||||
data = request.data
|
data = request.data
|
||||||
image = request.data.get('image')
|
image = request.data.get('image')
|
||||||
image_url = ''
|
image_url = ''
|
||||||
if image.size == NUMBER['zero']:
|
|
||||||
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
if image:
|
if image:
|
||||||
|
if image and image.size == NUMBER['zero']:
|
||||||
|
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
filename = f"images/{image.name}"
|
filename = f"images/{image.name}"
|
||||||
image_url = upload_image_to_alibaba(image, filename)
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
data = {"image":image_url}
|
data = {"image":image_url}
|
||||||
@ -118,7 +118,7 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
|
|||||||
image_data = image
|
image_data = image
|
||||||
else:
|
else:
|
||||||
filename = f"images/{image}"
|
filename = f"images/{image}"
|
||||||
if image.size == NUMBER['zero']:
|
if image and image.size == NUMBER['zero']:
|
||||||
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
image_url = upload_image_to_alibaba(image, filename)
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
image_data = image_url
|
image_data = image_url
|
||||||
|
@ -8,7 +8,7 @@ from django.utils import timezone
|
|||||||
from rest_framework_simplejwt.tokens import RefreshToken
|
from rest_framework_simplejwt.tokens import RefreshToken
|
||||||
|
|
||||||
"""Import django app"""
|
"""Import django app"""
|
||||||
from account.utils import send_otp_email
|
from account.utils import send_otp_email, generate_alphanumeric_code
|
||||||
from junior.models import Junior, JuniorPoints
|
from junior.models import Junior, JuniorPoints
|
||||||
from guardian.tasks import generate_otp
|
from guardian.tasks import generate_otp
|
||||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||||
@ -76,11 +76,7 @@ class CreateJuniorSerializer(serializers.ModelSerializer):
|
|||||||
user.last_name = self.context.get('last_name')
|
user.last_name = self.context.get('last_name')
|
||||||
user.save()
|
user.save()
|
||||||
"""Create junior data"""
|
"""Create junior data"""
|
||||||
junior, created = Junior.objects.get_or_create(auth=self.context['user'])
|
junior = Junior.objects.filter(auth=self.context['user']).last()
|
||||||
if created:
|
|
||||||
"""Create referral code and junior code"""
|
|
||||||
junior.referral_code = ''.join([str(random.randrange(9)) for _ in range(4)])
|
|
||||||
junior.junior_code = ''.join([str(random.randrange(9)) for _ in range(4)])
|
|
||||||
if junior:
|
if junior:
|
||||||
"""update details according to the data get from request"""
|
"""update details according to the data get from request"""
|
||||||
junior.gender = validated_data.get('gender',junior.gender)
|
junior.gender = validated_data.get('gender',junior.gender)
|
||||||
@ -134,8 +130,8 @@ class JuniorDetailSerializer(serializers.ModelSerializer):
|
|||||||
"""Meta info"""
|
"""Meta info"""
|
||||||
model = Junior
|
model = Junior
|
||||||
fields = ['id', 'email', 'first_name', 'last_name', 'country_code', 'phone', 'gender', 'dob',
|
fields = ['id', 'email', 'first_name', 'last_name', 'country_code', 'phone', 'gender', 'dob',
|
||||||
'guardian_code', 'is_invited', 'referral_code','is_active', 'is_complete_profile', 'created_at', 'image',
|
'guardian_code', 'is_invited', 'referral_code','is_active', 'is_complete_profile', 'created_at',
|
||||||
'updated_at']
|
'image', 'updated_at']
|
||||||
|
|
||||||
class JuniorDetailListSerializer(serializers.ModelSerializer):
|
class JuniorDetailListSerializer(serializers.ModelSerializer):
|
||||||
"""junior serializer"""
|
"""junior serializer"""
|
||||||
@ -279,8 +275,8 @@ class AddJuniorSerializer(serializers.ModelSerializer):
|
|||||||
junior_data = Junior.objects.create(auth=user_data, gender=validated_data.get('gender'),
|
junior_data = Junior.objects.create(auth=user_data, gender=validated_data.get('gender'),
|
||||||
dob=validated_data.get('dob'), is_invited=True,
|
dob=validated_data.get('dob'), is_invited=True,
|
||||||
relationship=validated_data.get('relationship'),
|
relationship=validated_data.get('relationship'),
|
||||||
junior_code=''.join([str(random.randrange(9)) for _ in range(4)]),
|
junior_code=generate_alphanumeric_code(6),
|
||||||
referral_code=''.join([str(random.randrange(9)) for _ in range(4)]),
|
referral_code=generate_alphanumeric_code(6),
|
||||||
referral_code_used=guardian_data.referral_code)
|
referral_code_used=guardian_data.referral_code)
|
||||||
"""Generate otp"""
|
"""Generate otp"""
|
||||||
otp_value = generate_otp()
|
otp_value = generate_otp()
|
||||||
|
@ -25,9 +25,9 @@ class UpdateJuniorProfile(viewsets.ViewSet):
|
|||||||
request_data = request.data
|
request_data = request.data
|
||||||
image = request.data.get('image')
|
image = request.data.get('image')
|
||||||
image_url = ''
|
image_url = ''
|
||||||
if image.size == NUMBER['zero']:
|
|
||||||
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
|
||||||
if image:
|
if image:
|
||||||
|
if image.size == NUMBER['zero']:
|
||||||
|
return custom_error_response(ERROR_CODE['2035'], response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
filename = f"images/{image.name}"
|
filename = f"images/{image.name}"
|
||||||
image_url = upload_image_to_alibaba(image, filename)
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
request_data = {"image": image_url}
|
request_data = {"image": image_url}
|
||||||
|
Reference in New Issue
Block a user