show_my_org in organizations list - validation of org national_unique_id

This commit is contained in:
2025-10-28 14:37:59 +03:30
parent da4909ab68
commit ee7f645ecd
5 changed files with 37 additions and 3 deletions

View File

@@ -4,7 +4,7 @@ from django.contrib.auth.hashers import make_password
from django.db.models import Q
from rest_framework import serializers
from apps.authentication.exceptions import UserExistException
from apps.authentication.exceptions import UserExistException, OrganizationNationalUniqueIDException
from apps.authentication.models import (
User,
City,
@@ -224,6 +224,17 @@ class OrganizationSerializer(serializers.ModelSerializer):
]
extra_kwargs = {}
def validate(self, attrs):
national_unique_id = self.context['request'].data['organization']['national_unique_id']
if not self.instance:
if self.Meta.model.objects.filter(national_unique_id=national_unique_id).exists():
raise OrganizationNationalUniqueIDException()
if self.instance:
if self.instance.national_unique_id != national_unique_id:
if self.Meta.model.objects.filter(national_unique_id=national_unique_id).exists():
raise OrganizationNationalUniqueIDException()
def to_representation(self, instance):
""" Custom output """
representation = super().to_representation(instance)