Files
aramesh-backend/backend/app/api/forms.py
T

43 lines
1.3 KiB
Python

"""انتهای فرم‌ها — ثبت پیام تماس و عضویت در خبرنامه."""
from fastapi import APIRouter, Depends
from sqlalchemy.orm import Session
from ..database import get_db
from .. import models
from ..schemas import ContactIn, ContactMessageOut, NewsletterIn, SubscriberOut
router = APIRouter()
@router.post("/contact", response_model=ContactMessageOut, status_code=201)
def submit_contact(payload: ContactIn, db: Session = Depends(get_db)):
message = models.ContactMessage(
name=payload.name.strip(),
phone=payload.phone.strip(),
note=payload.note.strip(),
)
db.add(message)
db.commit()
db.refresh(message)
return message
@router.post("/newsletter", response_model=SubscriberOut, status_code=201)
def subscribe(payload: NewsletterIn, db: Session = Depends(get_db)):
email = str(payload.email).lower()
subscriber = db.query(models.Subscriber).filter(models.Subscriber.email == email).first()
if subscriber is not None:
if not subscriber.is_active:
subscriber.is_active = True
db.commit()
db.refresh(subscriber)
return subscriber
subscriber = models.Subscriber(email=email)
db.add(subscriber)
db.commit()
db.refresh(subscriber)
return subscriber