mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-15 18:07:02 +00:00
jira-9 and jira-12 sendgrid and upload images in alibaba bucket
This commit is contained in:
@ -6,6 +6,9 @@ from django.db import transaction
|
||||
import random
|
||||
"""Import django app"""
|
||||
from junior.models import Junior
|
||||
from guardian.utils import upload_image_to_alibaba
|
||||
from base.messages import ERROR_CODE, SUCCESS_CODE
|
||||
from guardian.models import Guardian
|
||||
|
||||
class ListCharField(serializers.ListField):
|
||||
"""Serializer for Array field"""
|
||||
@ -19,7 +22,7 @@ class ListCharField(serializers.ListField):
|
||||
"""internal value"""
|
||||
if isinstance(data, list):
|
||||
return data
|
||||
raise serializers.ValidationError({"details":"Invalid input. Expected a list of strings."})
|
||||
raise serializers.ValidationError({"details":ERROR_CODE['2025']})
|
||||
|
||||
|
||||
class CreateJuniorSerializer(serializers.ModelSerializer):
|
||||
@ -32,13 +35,14 @@ class CreateJuniorSerializer(serializers.ModelSerializer):
|
||||
dob = serializers.DateField(required=False)
|
||||
referral_code = serializers.CharField(max_length=100, required=False)
|
||||
guardian_code = ListCharField(required=False)
|
||||
image = serializers.ImageField(required=False)
|
||||
|
||||
class Meta(object):
|
||||
"""Meta info"""
|
||||
model = Junior
|
||||
fields = ['first_name', 'last_name', 'email', 'phone', 'gender', 'country_code', 'dob', 'referral_code',
|
||||
'passcode', 'is_complete_profile', 'guardian_code', 'referral_code_used',
|
||||
'country_name']
|
||||
'country_name', 'image']
|
||||
|
||||
def get_first_name(self,obj):
|
||||
"""first name of junior"""
|
||||
@ -54,6 +58,12 @@ class CreateJuniorSerializer(serializers.ModelSerializer):
|
||||
|
||||
def create(self, validated_data):
|
||||
"""Create junior profile"""
|
||||
image = validated_data.pop('image', None)
|
||||
phone_number = validated_data.pop('phone', None)
|
||||
guardian_data = Guardian.objects.filter(phone=phone_number)
|
||||
junior_data = Junior.objects.filter(phone=phone_number)
|
||||
if junior_data or guardian_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 junior"""
|
||||
@ -85,6 +95,10 @@ class CreateJuniorSerializer(serializers.ModelSerializer):
|
||||
junior.is_complete_profile = False
|
||||
if complete_profile_field:
|
||||
junior.is_complete_profile = True
|
||||
if image:
|
||||
filename = f"images/{image.name}"
|
||||
image_url = upload_image_to_alibaba(image, filename)
|
||||
junior.image = image_url
|
||||
junior.save()
|
||||
return junior
|
||||
|
||||
|
Reference in New Issue
Block a user