From 0571b4273fff7c14c91d949fa2dc295f8757740e Mon Sep 17 00:00:00 2001
From: Jonas Braathen <jonas.braathen@usit.uio.no>
Date: Fri, 11 Mar 2022 01:15:02 +0100
Subject: [PATCH] Move IdentityDuplicateError

---
 .../api/serializers/IdentityDuplicateError.py | 21 -------------------
 gregui/api/serializers/guest.py               |  6 ++++--
 gregui/api/serializers/identity.py            | 20 +++++++++++++++++-
 gregui/api/serializers/invitation.py          |  2 +-
 gregui/api/views/person.py                    |  7 +++++--
 5 files changed, 29 insertions(+), 27 deletions(-)
 delete mode 100644 gregui/api/serializers/IdentityDuplicateError.py

diff --git a/gregui/api/serializers/IdentityDuplicateError.py b/gregui/api/serializers/IdentityDuplicateError.py
deleted file mode 100644
index 7b32db68..00000000
--- 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 c6ceab32..4161b2ff 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 44412cbe..6189d620 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 601694dd..1673de9b 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 32f027bf..1d349203 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
 
 
-- 
GitLab