diff --git a/endpoints/form.post.py b/endpoints/form.post.py index e69de29..44941f7 100644 --- a/endpoints/form.post.py +++ b/endpoints/form.post.py @@ -0,0 +1,25 @@ +from fastapi import APIRouter, HTTPException, status +from schemas.contact_form import ContactFormCreate +from helpers.contact_form_helpers import create_contact_form, validate_email +from sqlalchemy.orm import Session +from fastapi import Depends +from core.database import get_db + +router = APIRouter() + +@router.post("/form", status_code=status.HTTP_201_CREATED) +async def create_contact_form_endpoint( + contact_form_data: ContactFormCreate, + db: Session = Depends(get_db) +): + if not contact_form_data.name: + raise HTTPException(status_code=400, detail="Name is required") + if not contact_form_data.email: + raise HTTPException(status_code=400, detail="Email is required") + if not validate_email(contact_form_data.email): + raise HTTPException(status_code=400, detail="Invalid email format") + if not contact_form_data.message: + raise HTTPException(status_code=400, detail="Message is required") + + new_contact_form = create_contact_form(db=db, contact_form_data=contact_form_data) + return new_contact_form \ No newline at end of file