mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-11-27 09:04:54 +00:00
delete user account API
This commit is contained in:
@ -1,12 +1,13 @@
|
||||
"""Account serializer"""
|
||||
"""Django Imoprt"""
|
||||
import random
|
||||
from rest_framework import serializers
|
||||
from django.contrib.auth.models import User
|
||||
from rest_framework_simplejwt.tokens import RefreshToken
|
||||
"""App import"""
|
||||
from guardian.models import Guardian
|
||||
from junior.models import Junior
|
||||
from account.models import UserProfile, UserEmailOtp, UserPhoneOtp, DefaultTaskImages
|
||||
from account.models import UserProfile, UserEmailOtp, UserPhoneOtp, DefaultTaskImages, UserDelete
|
||||
from base.constants import GUARDIAN, JUNIOR, SUPERUSER
|
||||
from base.messages import ERROR_CODE_REQUIRED, ERROR_CODE, SUCCESS_CODE, STATUS_CODE_ERROR
|
||||
|
||||
@ -218,3 +219,47 @@ class DefaultTaskImagesDetailsSerializer(serializers.ModelSerializer):
|
||||
"""Meta info"""
|
||||
model = DefaultTaskImages
|
||||
fields = '__all__'
|
||||
|
||||
class UserDeleteSerializer(serializers.ModelSerializer):
|
||||
"""User Delete Serializer"""
|
||||
class Meta(object):
|
||||
"""Meta Information"""
|
||||
model = UserDelete
|
||||
fields = ['reason']
|
||||
def create(self, validated_data):
|
||||
user = self.context['user']
|
||||
user_type = str(self.context['user_type'])
|
||||
data = validated_data.get('reason')
|
||||
random_num = random.randint(0,10000)
|
||||
user_tb = User.objects.filter(id=user.id).last()
|
||||
user_type_data = UserEmailOtp.objects.filter(email=user.email).last()
|
||||
if user_type == '1' and user_type_data.user_type == '1':
|
||||
junior_data = Junior.objects.filter(auth__email=user_tb.email).first()
|
||||
if junior_data:
|
||||
junior_data.is_active = False
|
||||
junior_data.is_verified = False
|
||||
junior_data.guardian_code = '{}'
|
||||
junior_data.save()
|
||||
elif user_type == '2' and user_type_data.user_type == '2':
|
||||
guardian_data = Guardian.objects.filter(user__email=user_tb.email).first()
|
||||
if guardian_data:
|
||||
guardian_data.is_active = False
|
||||
guardian_data.is_verified = False
|
||||
guardian_data.save()
|
||||
jun_data = Junior.objects.filter(guardian_code__icontains=str(guardian_data.guardian_code))
|
||||
for data in jun_data:
|
||||
data.guardian_code.remove(guardian_data.guardian_code)
|
||||
data.save()
|
||||
else:
|
||||
raise serializers.ValidationError({"details":ERROR_CODE['2030'],"code":"400", "status":"failed"})
|
||||
|
||||
user_tb.email = str(random_num) + str('@D_') + '{}'.format(user_tb.username).lower()
|
||||
user_tb.username = str(random_num) + str('@D_') + '{}'.format(user_tb.username).lower()
|
||||
user_tb.password = 'None'
|
||||
d_email = user_tb.email
|
||||
o_mail = user.email
|
||||
instance = UserDelete.objects.create(user=user_tb, d_email=d_email, old_email=o_mail,
|
||||
is_active=True, reason=data)
|
||||
user_tb.save()
|
||||
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user