From 0e20fc06fa65d37bf7b001999183ec9b33beaf87 Mon Sep 17 00:00:00 2001 From: Backend IM Bot Date: Mon, 28 Apr 2025 02:50:29 +0000 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat:=20Add=20new=20endpoints/form.?= =?UTF-8?q?post.py=20endpoint=20for=20Contact=5Fform=20=F0=9F=9A=80=20?= =?UTF-8?q?=F0=9F=93=A6=20with=20updated=20dependencies=20=E2=9C=85=20(aut?= =?UTF-8?q?o-linted)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- endpoints/form.post.py | 22 ++++++++++++++++++++++ requirements.txt | 1 + 2 files changed, 23 insertions(+) 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