diff --git a/gregui/api/serializers/IdentityDuplicateError.py b/gregui/api/serializers/IdentityDuplicateError.py deleted file mode 100644 index 7b32db6800907bc56ade60d2ce89690297a31837..0000000000000000000000000000000000000000 --- a/gregui/api/serializers/IdentityDuplicateError.py +++ /dev/null @@ -1,21 +0,0 @@ -from rest_framework.exceptions import APIException -from rest_framework import status - -from greg.models import Identity - - -class IdentityDuplicateError(APIException): - """ - Used to signal the there is already an identity registered with the same value - for the type given as input parameter. - """ - - status_code = status.HTTP_400_BAD_REQUEST - default_detail = "Validation error" - _type: Identity.IdentityType - - def __init__(self, identity_type: Identity.IdentityType, code: str): - super().__init__() - self._type = identity_type - self.code = code - self.detail = {"code": code, "message": "Duplicate identity"} diff --git a/gregui/api/serializers/guest.py b/gregui/api/serializers/guest.py index c6ceab32c5fb80b8101ec92eac17ae87457785fb..4161b2ff4e7d3d2bfa499e41999d0150dc25771a 100644 --- a/gregui/api/serializers/guest.py +++ b/gregui/api/serializers/guest.py @@ -16,8 +16,10 @@ from greg.models import ( InvitationLink, ) from greg.utils import is_identity_duplicate -from gregui.api.serializers.IdentityDuplicateError import IdentityDuplicateError -from gregui.api.serializers.identity import PartialIdentitySerializer +from gregui.api.serializers.identity import ( + PartialIdentitySerializer, + IdentityDuplicateError, +) from gregui.api.serializers.role import ExtendedRoleSerializer from gregui.validation import ( validate_phone_number, diff --git a/gregui/api/serializers/identity.py b/gregui/api/serializers/identity.py index 44412cbe2392b81e86815ccc0701067c6b92c462..6189d620e9cfdbcda7c365c954fd9bbe80640500 100644 --- a/gregui/api/serializers/identity.py +++ b/gregui/api/serializers/identity.py @@ -1,12 +1,30 @@ from django.conf import settings from django.utils import timezone from rest_framework import serializers -from rest_framework.exceptions import ValidationError +from rest_framework import status +from rest_framework.exceptions import APIException, ValidationError from greg.models import Identity from gregui.models import GregUserProfile +class IdentityDuplicateError(APIException): + """ + Used to signal the there is already an identity registered with the same value + for the type given as input parameter. + """ + + status_code = status.HTTP_400_BAD_REQUEST + default_detail = "Validation error" + _type: Identity.IdentityType + + def __init__(self, identity_type: Identity.IdentityType, code: str): + super().__init__() + self._type = identity_type + self.code = code + self.detail = {"code": code, "message": "Duplicate identity"} + + class IdentitySerializer(serializers.ModelSerializer): """Serializer for the Identity model with validation of various fields""" diff --git a/gregui/api/serializers/invitation.py b/gregui/api/serializers/invitation.py index 601694ddc6db3f1056a546725b7aad7b0942c1b0..1673de9b812946258b517459da4689ae7c9344ac 100644 --- a/gregui/api/serializers/invitation.py +++ b/gregui/api/serializers/invitation.py @@ -7,7 +7,7 @@ from rest_framework import serializers from greg.models import Invitation, InvitationLink, Person, Role, Identity from greg.utils import is_identity_duplicate -from gregui.api.serializers.IdentityDuplicateError import IdentityDuplicateError +from gregui.api.serializers.identity import IdentityDuplicateError from gregui.api.serializers.role import InviteRoleSerializerUi from gregui.models import GregUserProfile diff --git a/gregui/api/views/person.py b/gregui/api/views/person.py index 32f027bfd0027f22c74e0eca401dbd1fe21b5081..1d34920343c786f25aa32941b722cedaf710ec3b 100644 --- a/gregui/api/views/person.py +++ b/gregui/api/views/person.py @@ -10,8 +10,11 @@ from greg.models import Identity, Person from greg.permissions import IsSponsor from greg.utils import is_identity_duplicate from gregui import validation -from gregui.api.serializers.IdentityDuplicateError import IdentityDuplicateError -from gregui.api.serializers.guest import GuestSerializer, create_identity_or_update +from gregui.api.serializers.guest import ( + GuestSerializer, + create_identity_or_update, +) +from gregui.api.serializers.identity import IdentityDuplicateError from gregui.models import GregUserProfile