from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from core.database import get_db from schemas.contact_form import ContactFormCreate, ContactFormSchema from helpers.contact_form_helpers import create_contact_form, validate_contact_form_data router = APIRouter() @router.post("/email", status_code=status.HTTP_201_CREATED, response_model=ContactFormSchema) 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 a 400 response with the error details if errors: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=errors ) # Create the contact form in the database new_contact_form = create_contact_form(db=db, contact_form_data=contact_form) return new_contact_form