from fastapi import APIRouter, Depends, HTTPException, status from sqlalchemy.orm import Session from core.database import get_db from schemas.contact import ContactCreate, ContactSchema from helpers.contact_helpers import validate_contact_data, create_contact, format_contact_response, sanitize_contact_input router = APIRouter() @router.post("/contact", status_code=status.HTTP_201_CREATED, response_model=ContactSchema) async def submit_contact_form( contact_data: ContactCreate, db: Session = Depends(get_db) ): validation_errors = validate_contact_data(contact_data.dict()) if validation_errors: raise HTTPException( status_code=status.HTTP_400_BAD_REQUEST, detail=validation_errors ) sanitized_data = sanitize_contact_input(contact_data.dict()) db_contact = create_contact(db=db, contact_data=ContactCreate(**sanitized_data)) return format_contact_response(db_contact)