from sqlalchemy.orm import Session from models.contact_form import ContactForm from schemas.contact_form import ContactFormCreate import email_validator def validate_email(email: str) -> bool: """ Validates if the given email is in a valid format. Args: email (str): The email address to validate. Returns: bool: True if the email is valid, False otherwise. """ try: email_validator.validate_email(email) return True except email_validator.EmailNotValidError: return False def create_contact_form(db: Session, contact_form_data: ContactFormCreate) -> ContactForm: """ Creates a new contact form in the database. Args: db (Session): The database session. contact_form_data (ContactFormCreate): The data for the contact form to create. Returns: ContactForm: The newly created contact form object. """ if not contact_form_data.name: raise ValueError("Name is required") if not contact_form_data.email: raise ValueError("Email is required") if not validate_email(contact_form_data.email): raise ValueError("Invalid email format") if not contact_form_data.message: raise ValueError("Message is required") db_contact_form = ContactForm(**contact_form_data.dict()) db.add(db_contact_form) db.commit() db.refresh(db_contact_form) return db_contact_form