mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 10:26:16 +00:00
jira-28 invite guardian
This commit is contained in:
@ -9,7 +9,7 @@ from rest_framework_simplejwt.tokens import RefreshToken
|
||||
|
||||
"""Import django app"""
|
||||
from account.utils import send_otp_email, generate_code
|
||||
from junior.models import Junior, JuniorPoints
|
||||
from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship
|
||||
from guardian.tasks import generate_otp
|
||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||
from base.constants import PENDING, IN_PROGRESS, REJECTED, REQUESTED, COMPLETED, NUMBER, JUN, ZOD
|
||||
@ -249,18 +249,11 @@ class JuniorProfileSerializer(serializers.ModelSerializer):
|
||||
|
||||
class AddJuniorSerializer(serializers.ModelSerializer):
|
||||
"""Add junior serializer"""
|
||||
auth_token = serializers.SerializerMethodField('get_auth_token')
|
||||
|
||||
def get_auth_token(self, obj):
|
||||
"""auth token"""
|
||||
refresh = RefreshToken.for_user(obj)
|
||||
access_token = str(refresh.access_token)
|
||||
return access_token
|
||||
|
||||
class Meta(object):
|
||||
"""Meta info"""
|
||||
model = Junior
|
||||
fields = ['id', 'gender','dob', 'relationship', 'auth_token', 'is_invited']
|
||||
fields = ['id', 'gender','dob', 'is_invited']
|
||||
|
||||
|
||||
def create(self, validated_data):
|
||||
@ -268,6 +261,7 @@ class AddJuniorSerializer(serializers.ModelSerializer):
|
||||
with transaction.atomic():
|
||||
email = self.context['email']
|
||||
guardian = self.context['user']
|
||||
relationship = self.context['relationship']
|
||||
full_name = self.context['first_name'] + ' ' + self.context['last_name']
|
||||
guardian_data = Guardian.objects.filter(user__username=guardian).last()
|
||||
user_data = User.objects.create(username=email, email=email,
|
||||
@ -278,11 +272,13 @@ class AddJuniorSerializer(serializers.ModelSerializer):
|
||||
user_data.save()
|
||||
junior_data = Junior.objects.create(auth=user_data, gender=validated_data.get('gender'),
|
||||
dob=validated_data.get('dob'), is_invited=True,
|
||||
relationship=validated_data.get('relationship'),
|
||||
guardian_code=[guardian_data.guardian_code],
|
||||
junior_code=generate_code(JUN, user_data.id),
|
||||
referral_code=generate_code(ZOD, user_data.id),
|
||||
referral_code_used=guardian_data.referral_code,
|
||||
is_password_set=False, is_verified=True)
|
||||
JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data,
|
||||
relationship=relationship)
|
||||
"""Generate otp"""
|
||||
otp_value = generate_otp()
|
||||
expiry_time = timezone.now() + timezone.timedelta(days=1)
|
||||
@ -375,18 +371,11 @@ class JuniorPointsSerializer(serializers.ModelSerializer):
|
||||
|
||||
class AddGuardianSerializer(serializers.ModelSerializer):
|
||||
"""Add guardian serializer"""
|
||||
auth_token = serializers.SerializerMethodField('get_auth_token')
|
||||
|
||||
def get_auth_token(self, obj):
|
||||
"""auth token"""
|
||||
refresh = RefreshToken.for_user(obj)
|
||||
access_token = str(refresh.access_token)
|
||||
return access_token
|
||||
|
||||
class Meta(object):
|
||||
"""Meta info"""
|
||||
model = Guardian
|
||||
fields = ['id', 'auth_token']
|
||||
fields = ['id']
|
||||
|
||||
|
||||
def create(self, validated_data):
|
||||
@ -394,11 +383,12 @@ class AddGuardianSerializer(serializers.ModelSerializer):
|
||||
with transaction.atomic():
|
||||
email = self.context['email']
|
||||
junior = self.context['user']
|
||||
relationship = self.context['relationship']
|
||||
full_name = self.context['first_name'] + ' ' + self.context['last_name']
|
||||
junior_data = Junior.objects.filter(auth__username=junior).last()
|
||||
instance = User.objects.filter(username=email).last()
|
||||
if instance:
|
||||
guardian_data = Guardian.objects.filter(user=user).update(is_invited=True,
|
||||
guardian_data = Guardian.objects.filter(user=instance).update(is_invited=True,
|
||||
referral_code=generate_code(ZOD,
|
||||
instance.id),
|
||||
referral_code_used=junior_data.referral_code,
|
||||
@ -412,22 +402,24 @@ class AddGuardianSerializer(serializers.ModelSerializer):
|
||||
password = User.objects.make_random_password()
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
Guardian.objects.create(user=user, is_invited=True,
|
||||
referral_code=generate_code(ZOD, user.id),
|
||||
referral_code_used=junior_data.referral_code,
|
||||
is_password_set=False, is_verified=True)
|
||||
guardian_data = Guardian.objects.create(user=user, is_invited=True,
|
||||
referral_code=generate_code(ZOD, user.id),
|
||||
referral_code_used=junior_data.referral_code,
|
||||
is_password_set=False, is_verified=True)
|
||||
"""Generate otp"""
|
||||
otp_value = generate_otp()
|
||||
expiry_time = timezone.now() + timezone.timedelta(days=1)
|
||||
UserEmailOtp.objects.create(email=email, otp=otp_value,
|
||||
user_type=str(NUMBER['two']), expired_at=expiry_time,
|
||||
is_verified=True)
|
||||
JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data,
|
||||
relationship=relationship)
|
||||
"""Notification email"""
|
||||
junior_notification_email(email, full_name, email, password)
|
||||
junior_approval_mail(email, full_name)
|
||||
send_notification(INVITED_GUARDIAN, None, junior_data.auth.id, {})
|
||||
send_notification(APPROVED_JUNIOR, None, email, {})
|
||||
return instance
|
||||
return guardian_data
|
||||
|
||||
class StartTaskSerializer(serializers.ModelSerializer):
|
||||
"""User task Serializer"""
|
||||
|
Reference in New Issue
Block a user