-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidators.py
More file actions
23 lines (20 loc) · 786 Bytes
/
validators.py
File metadata and controls
23 lines (20 loc) · 786 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import business.models
import rest_framework.exceptions
class UniqueEmailValidator:
def __init__(self, default_detail=None, default_code=None):
self.status_code = 409
self.default_detail = (
default_detail or 'This email address is already registered.'
)
self.default_code = default_code or 'email_conflict'
def __call__(self, value):
if business.models.Company.objects.filter(email=value).exists():
exc = rest_framework.exceptions.APIException(
detail={
'status': 'error',
'message': self.default_detail,
'code': self.default_code,
},
)
exc.status_code = self.status_code
raise exc