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 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 fields. All fields are required and email must be in valid format. """ # Validate the contact form data validation_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 validation_errors: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=validation_errors ) # Create the contact form in the database created_form = create_contact_form(db=db, contact_form_data=contact_form) return { "status": "success", "message": "Contact form submitted successfully", "id": created_form.id }