feat: add contact form submission endpoint with field validation ✅ (auto-linted)
This commit is contained in:
parent
8f0883cc53
commit
abc44b43e7
@ -2,7 +2,7 @@ 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
|
||||
from helpers.contact_form_helpers import create_contact_form, validate_contact_form_data
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
@ -12,28 +12,27 @@ async def submit_contact_form(
|
||||
db: Session = Depends(get_db)
|
||||
):
|
||||
"""
|
||||
Submit a contact form with name, email, and message fields.
|
||||
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
|
||||
validation_errors = validate_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 validation_errors:
|
||||
if errors:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_400_BAD_REQUEST,
|
||||
detail=validation_errors
|
||||
detail=errors
|
||||
)
|
||||
|
||||
# Create the contact form in the database
|
||||
created_form = create_contact_form(db=db, contact_form_data=contact_form)
|
||||
# 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",
|
||||
"id": created_form.id
|
||||
"message": "Contact form submitted successfully"
|
||||
}
|
@ -34,8 +34,8 @@ def create_contact_form(db: Session, contact_form_data: ContactFormCreate) -> Co
|
||||
|
||||
def validate_contact_form_data(data: Dict[str, Any]) -> Dict[str, str]:
|
||||
"""
|
||||
Validates contact form data manually, checking for required fields and valid email format.
|
||||
Uses email_validator package for email validation.
|
||||
Validates contact form data, checking for required fields and using
|
||||
email_validator package for email validation.
|
||||
|
||||
Args:
|
||||
data (Dict[str, Any]): The contact form data to validate.
|
||||
|
Loading…
x
Reference in New Issue
Block a user