Save normalized phone format to DB

This commit is contained in:
Ryan Ahearn
2023-01-06 10:02:23 -05:00
parent 82df01653f
commit 8a0535fa03
10 changed files with 36 additions and 27 deletions

View File

@@ -36,6 +36,7 @@ from sqlalchemy.dialects.postgresql import JSON, JSONB, UUID
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.ext.hybrid import hybrid_property
from sqlalchemy.orm import validates
from sqlalchemy.orm.collections import attribute_mapped_collection
from app import db, encryption
@@ -140,6 +141,14 @@ class User(db.Model):
secondary='user_to_organisation',
backref='users')
@validates("mobile_number")
def validate_mobile_number(self, key, number):
try:
if number is not None:
return validate_phone_number(number, international=True)
except InvalidPhoneError as err:
raise ValueError(str(err)) from err
@property
def password(self):
raise AttributeError("Password not readable")
@@ -708,11 +717,9 @@ class ServiceGuestList(db.Model):
try:
if recipient_type == MOBILE_TYPE:
validate_phone_number(recipient, international=True)
instance.recipient = recipient
instance.recipient = validate_phone_number(recipient, international=True)
elif recipient_type == EMAIL_TYPE:
validate_email_address(recipient)
instance.recipient = recipient
instance.recipient = validate_email_address(recipient)
else:
raise ValueError('Invalid recipient type')
except InvalidPhoneError: