set user data in get users response

This commit is contained in:
2025-06-08 16:09:46 +03:30
parent 7cd3f992ae
commit fa9c7dfaf8

View File

@@ -1,4 +1,8 @@
from apps.authorization.api.v1.serializers import UserRelationSerializer
from apps.authorization.api.v1.serializers import (
UserRelationSerializer,
PermissionSerializer,
RoleSerializer
)
from rest_framework.response import Response
from rest_framework import serializers
from apps.authentication.models import (
@@ -59,6 +63,22 @@ class BankAccountSerializer(serializers.ModelSerializer):
return instance
class UserDataRelationSerializer(serializers.ModelSerializer):
class Meta:
model = authorize_models.UserRelations
fields = '__all__'
def to_representation(self, instance):
representation = super().to_representation(instance)
representation['role'] = RoleSerializer(instance.role).data
representation['organization'] = instance.organization.name
representation['permissions'] = PermissionSerializer().permissions_structure_output(
instance.permissions.all()
)
return representation
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
@@ -82,6 +102,19 @@ class UserSerializer(serializers.ModelSerializer):
'otp_status',
]
def to_representation(self, instance):
representation = super().to_representation(instance)
if authorize_models.UserRelations.objects.filter(user=instance).exists():
representation['relation_data'] = UserDataRelationSerializer(
authorize_models.UserRelations.objects.filter(user=instance).first()
).data
if instance.bank_information.all():
representation['bank_account'] = BankAccountSerializer(
instance.bank_information.all(), many=True
).data
return representation
def update(self, instance, validated_data):
""" update user instance """
instance.username = validated_data.get('username', instance.username)