validate module

This commit is contained in:
CHIEFSOFT\ameye
2024-12-08 17:49:02 -05:00
parent 935fba5111
commit d76c696420
3 changed files with 49 additions and 25 deletions
+37
View File
@@ -0,0 +1,37 @@
"""Validator Module"""
import re
#from bson.objectid import ObjectId
def validate(data, regex):
"""Custom Validator"""
return True if re.match(regex, data) else False
def validate_password(password: str):
"""Password Validator"""
reg = r"\b^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*#?&])[A-Za-z\d@$!#%*?&]{8,20}$\b"
return validate(password, reg)
def validate_username(username: str):
if not 6 <= len(username.split(' ')) <= 15:
return {
'name': 'Username must be between 6 and 15 words'
}
return True
def validate_username_and_password(username, password):
"""Username and Password Validator"""
if not (username and password):
return {
'username': 'Username is required',
'password': 'Password is required'
}
if not validate_username(username):
return {
'email': 'Username is invalid'
}
if not validate_password(password):
return {
'password': 'Password is invalid, Should be at least 8 characters with \
upper and lower case letters, numbers and special characters'
}
return True