diff --git a/endpoints/form.post.py b/endpoints/form.post.py index e69de29..e06f21f 100644 --- a/endpoints/form.post.py +++ b/endpoints/form.post.py @@ -0,0 +1,22 @@ +from fastapi import APIRouter, HTTPException, status +from schemas.contact_form import ContactFormCreate +from helpers.contact_form_helpers import create_contact_form, validate_email +from db import get_db +from sqlalchemy.orm import Session +from fastapi import Depends + +router = APIRouter() + +@router.post("/form", status_code=status.HTTP_201_CREATED, response_model=ContactFormCreate) +async def submit_contact_form(contact_form: ContactFormCreate, db: Session = Depends(get_db)): + if not contact_form.name: + raise HTTPException(status_code=400, detail="Name is required") + if not contact_form.email: + raise HTTPException(status_code=400, detail="Email is required") + if not validate_email(contact_form.email): + raise HTTPException(status_code=400, detail="Invalid email format") + if not contact_form.message: + raise HTTPException(status_code=400, detail="Message is required") + + new_contact_form = create_contact_form(db=db, contact_form_data=contact_form) + return new_contact_form \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ec13e88..accd14c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,4 @@ email_validator jose passlib pydantic +db