Files
New-planet-api/new-planet-backend/app/utils/validators.py
2025-12-13 14:39:50 +03:00

28 lines
853 B
Python

from typing import Optional
import re
from pydantic import EmailStr, validator
def validate_email(email: str) -> bool:
"""Валидация email"""
pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
return bool(re.match(pattern, email))
def validate_password(password: str) -> tuple[bool, Optional[str]]:
"""Валидация пароля"""
if len(password) < 8:
return False, "Password must be at least 8 characters long"
if not re.search(r'[A-Z]', password):
return False, "Password must contain at least one uppercase letter"
if not re.search(r'[a-z]', password):
return False, "Password must contain at least one lowercase letter"
if not re.search(r'\d', password):
return False, "Password must contain at least one digit"
return True, None