diff --git a/alembic/versions/20250428_135005_30036e93_update_contact_form.py b/alembic/versions/20250428_135005_30036e93_update_contact_form.py new file mode 100644 index 0000000..6772282 --- /dev/null +++ b/alembic/versions/20250428_135005_30036e93_update_contact_form.py @@ -0,0 +1,21 @@ +"""add name and message columns to contact_forms table +Revision ID: 1a2b3c4d5e6f +Revises: 6be7c5a3ec33 +Create Date: 2023-05-26 15:02:38.890474 +""" +from alembic import op +import sqlalchemy as sa + +# revision identifiers, used by Alembic +revision = '1a2b3c4d5e6f' +down_revision = '6be7c5a3ec33' +branch_labels = None +depends_on = None + +def upgrade(): + op.add_column('contact_forms', sa.Column('name', sa.String(), nullable=False)) + op.add_column('contact_forms', sa.Column('message', sa.Text(), nullable=False)) + +def downgrade(): + op.drop_column('contact_forms', 'message') + op.drop_column('contact_forms', 'name') \ No newline at end of file diff --git a/endpoints/form.post.py b/endpoints/form.post.py index 04caacd..2cc5bff 100644 --- a/endpoints/form.post.py +++ b/endpoints/form.post.py @@ -1,19 +1,13 @@ -from fastapi import APIRouter, HTTPException, status -from schemas.contact_form import ContactFormCreate +from fastapi import APIRouter, HTTPException from helpers.contact_form_helpers import create_contact_form, validate_email -from fastapi import Depends -from sqlalchemy.orm import Session -from core.database import get_db +from schemas.contact_form import ContactFormCreate router = APIRouter() -@router.post("/form", status_code=status.HTTP_201_CREATED, response_model=ContactFormCreate) -async def create_form( - contact_form_data: ContactFormCreate, - db: Session = Depends(get_db) -): +@router.post("/form", status_code=201) +async def submit_contact_form(contact_form_data: ContactFormCreate): if not validate_email(contact_form_data.email): raise HTTPException(status_code=400, detail="Invalid email format") - new_contact_form = create_contact_form(db=db, contact_form_data=contact_form_data) + new_contact_form = create_contact_form(contact_form_data=contact_form_data) return new_contact_form \ No newline at end of file diff --git a/helpers/contact_form_helpers.py b/helpers/contact_form_helpers.py index 314b511..c4b8c39 100644 --- a/helpers/contact_form_helpers.py +++ b/helpers/contact_form_helpers.py @@ -31,12 +31,10 @@ def create_contact_form(db: Session, contact_form_data: ContactFormCreate) -> Co """ 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 ContactForm.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") + if not contact_form_data.email or not ContactForm.validate_email(contact_form_data.email): + raise HTTPException(status_code=400, detail="Invalid email format") db_contact_form = ContactForm(**contact_form_data.dict()) db.add(db_contact_form)