def register_user(cls, username: str, email: str, password: str, filename: str) -> bool: if not Utils.is_email_safe(email): raise UserErrors.InvalidEmailAddess('invalid email address') try: user = cls.find_by_email(email) raise UserErrors.UserAlreadyExit( 'user with this email already exits') except UserErrors.UserNotFound: UserModel(username, email, Utils.create_hashed_password(password), filename).save_to_mongo() return True