Files
inversionitasbot/app/routes.py
2025-02-05 20:57:15 +01:00

42 lines
1.2 KiB
Python

from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from .database import get_db
from .models import NewsItem
from pydantic import BaseModel
from datetime import datetime
router = APIRouter()
# Modelo de datos de entrada
class NewsItemCreate(BaseModel):
titulo: str
contenido: str
autor: str | None = None
fuente: str | None = None
fecha: datetime | None = None
link: str
@router.post("/news/")
def create_news_item(item: NewsItemCreate, db: Session = Depends(get_db)):
# Verificar si el título ya existe
existing_item = db.query(NewsItem).filter(NewsItem.titulo == item.titulo).first()
if existing_item:
raise HTTPException(status_code=400, detail="El título ya existe en la base de datos")
# Crear nuevo objeto
new_item = NewsItem(
titulo=item.titulo,
contenido=item.contenido,
autor=item.autor,
fuente=item.fuente,
fecha=item.fecha or datetime.utcnow(),
link=item.link
)
db.add(new_item)
db.commit()
db.refresh(new_item)
return {"message": "Noticia creada con éxito", "id": new_item.id, "titulo": new_item.titulo}