from sqlalchemy.orm import Session from pydantic import ValidationError from models.contact import Contact from schemas.contact import ContactCreate import re def create_contact(db: Session, contact_data: ContactCreate) -> Contact: """ Creates a new contact in the database. Args: db (Session): The database session. contact_data (ContactCreate): The data for the contact to create. Returns: Contact: The newly created contact object. """ db_contact = Contact( name=contact_data.name, email=contact_data.email, message=contact_data.message ) db.add(db_contact) db.commit() db.refresh(db_contact) return db_contact def validate_contact_data(contact_data: ContactCreate) -> bool: """ Validates the contact data. Args: contact_data (ContactCreate): The contact data to validate. Returns: bool: True if the data is valid, False otherwise. """ try: contact_data.name contact_data.email contact_data.message except ValidationError as e: print(f"Validation error: {e}") return False if not contact_data.name or not contact_data.message: return False email_regex = r'^[\w\.-]+@[\w\.-]+\.\w+$' if not re.match(email_regex, contact_data.email): return False return True