from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from core.database import get_db from schemas.contact_form import ContactFormCreate from helpers.contact_form_helpers import create_contact_form, validate_contact_form_data router = APIRouter() @router.post("/email", status_code=status.HTTP_201_CREATED) async def submit_contact_form( contact_form: ContactFormCreate, db: Session = Depends(get_db) ): """ Submit a contact form with name, email, and message. All fields are required and email must be in valid format. """ # Validate the contact form data errors = validate_contact_form_data({ "name": contact_form.name, "email": contact_form.email, "message": contact_form.message }) # If there are validation errors, return 400 with error details if errors: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=errors ) # Create the contact form entry in the database create_contact_form(db=db, contact_form_data=contact_form) return { "status": "success", "message": "Contact form submitted successfully" }