routes create
This commit is contained in:
@ -4,7 +4,7 @@ from sqlalchemy.sql import func
|
||||
from database import get_db
|
||||
from models import NewsItem
|
||||
from pydantic import BaseModel
|
||||
from datetime import datetime
|
||||
from datetime import datetime, UTC
|
||||
import logging
|
||||
|
||||
# Configuración del logging
|
||||
@ -26,6 +26,31 @@ class NewsItemCreate(BaseModel):
|
||||
fecha: datetime | None = None
|
||||
link: str
|
||||
keyword: str | None = None
|
||||
|
||||
@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:
|
||||
logging.info("Título ya 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.now(UTC), # Nueva forma recomendada
|
||||
link=item.link,
|
||||
keyword=item.keyword
|
||||
)
|
||||
|
||||
db.add(new_item)
|
||||
db.commit()
|
||||
db.refresh(new_item)
|
||||
|
||||
return {"message": "Noticia creada con éxito", "id": new_item.id, "titulo": new_item.titulo}
|
||||
|
||||
|
||||
@router.get("/news/count/by-source")
|
||||
def count_news_by_source(db: Session = Depends(get_db)):
|
||||
|
Reference in New Issue
Block a user