jira-15 dashboard api profile, default image, top leaderboard API

This commit is contained in:
jain
2023-07-07 16:33:51 +05:30
parent c6ffb1f039
commit ab435ef384
10 changed files with 200 additions and 18 deletions

View File

@ -38,9 +38,11 @@ class UserSerializer(serializers.ModelSerializer):
user = User.objects.create_user(username=email, email=email, password=password)
UserProfile.objects.create(user=user, user_type=user_type)
if user_type == '1':
Junior.objects.create(auth=user)
Junior.objects.create(auth=user, junior_code=''.join([str(random.randrange(9)) for _ in range(6)]),
referral_code=''.join([str(random.randrange(9)) for _ in range(6)]))
if user_type == '2':
Guardian.objects.create(user=user)
Guardian.objects.create(user=user, guardian_code=''.join([str(random.randrange(9)) for _ in range(6)]),
referral_code=''.join([str(random.randrange(9)) for _ in range(6)]))
return user
except Exception as e:
"""Error handling"""
@ -88,11 +90,6 @@ class CreateGuardianSerializer(serializers.ModelSerializer):
def create(self, validated_data):
"""Create guardian profile"""
# phone_number = validated_data.get('phone', None)
# guardian_data = Guardian.objects.filter(phone=phone_number)
# junior_data = Junior.objects.filter(phone=phone_number)
# if phone_number and (guardian_data or junior_data):
# raise serializers.ValidationError({"details": ERROR_CODE['2012']})
user = User.objects.filter(username=self.context['user']).last()
if user:
"""Save first and last name of guardian"""
@ -176,7 +173,7 @@ class GuardianDetailSerializer(serializers.ModelSerializer):
'updated_at']
class TaskDetailsSerializer(serializers.ModelSerializer):
guardian = GuardianDetailSerializer()
# guardian = GuardianDetailSerializer()
junior = JuniorDetailSerializer()
class Meta(object):
model = JuniorTask
@ -216,3 +213,27 @@ class TopJuniorSerializer(serializers.ModelSerializer):
return item['total_points']
return 0
class GuardianProfileSerializer(serializers.ModelSerializer):
"""junior serializer"""
email = serializers.SerializerMethodField('get_auth')
first_name = serializers.SerializerMethodField('get_first_name')
last_name = serializers.SerializerMethodField('get_last_name')
def get_auth(self, obj):
"""user email address"""
return obj.user.username
def get_first_name(self, obj):
"""user first name"""
return obj.user.first_name
def get_last_name(self, obj):
"""user last name"""
return obj.user.last_name
class Meta(object):
"""Meta info"""
model = Guardian
fields = ['id', 'email', 'first_name', 'last_name', 'country_code', 'phone', 'gender', 'dob',
'guardian_code', 'referral_code','is_active', 'is_complete_profile', 'created_at', 'image',
'updated_at']