jira-9 and jira-12 sendgrid and upload images in alibaba bucket

This commit is contained in:
jain
2023-06-29 11:40:04 +05:30
parent f0a2a4bd4b
commit 9d7f265f40
17 changed files with 160 additions and 35 deletions

View File

@ -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