"""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""" # print(password) 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(' ')) <= 20: 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 { 'username': '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