Actualizar backend/main.py
This commit is contained in:
@@ -337,6 +337,33 @@ def get_subir_base_asesores():
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
|
||||
@app.get("/api/exportar-base/asesores")
|
||||
def get_exportar_base_asesores():
|
||||
"""Asesores (agents) de Chatwoot en vivo, para elegir en Exportar Base."""
|
||||
try:
|
||||
return services.exportar_base_asesores()
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
|
||||
@app.get("/api/exportar-base")
|
||||
def get_exportar_base(asesor: str = Query(...), etiquetas: list[str] = Query(None)):
|
||||
"""Descarga la base de leads de UN asesor (dedup por teléfono más antiguo,
|
||||
SEDE_ACT por asesor, última etiqueta) como Excel. 'etiquetas' filtra por
|
||||
última etiqueta (vacío = todas)."""
|
||||
from fastapi.responses import StreamingResponse
|
||||
from io import BytesIO
|
||||
try:
|
||||
data = services.exportar_base_excel(asesor, etiquetas)
|
||||
nombre = "".join(ch for ch in asesor if ch.isalnum() or ch in " _-").strip().replace(" ", "_")
|
||||
headers = {"Content-Disposition": f"attachment; filename=base_{nombre or 'asesor'}.xlsx"}
|
||||
return StreamingResponse(BytesIO(data),
|
||||
media_type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
headers=headers)
|
||||
except Exception as e:
|
||||
raise HTTPException(status_code=500, detail=str(e))
|
||||
|
||||
|
||||
@app.post("/api/subir-base/enviar")
|
||||
def post_subir_base_enviar(payload: dict = Body(...)):
|
||||
"""Sube una base de números: crea contacto (o usa el existente), le asigna
|
||||
|
||||
Reference in New Issue
Block a user