23 lines
972 B
Python
23 lines
972 B
Python
# Servicio API: endpoints GET para descarga
|
|
from flask import Flask, request, jsonify
|
|
from App.Services.logic_service import run_etl # O importa db_utils directamente
|
|
import pandas as pd
|
|
import logging
|
|
|
|
app = Flask(__name__)
|
|
logging.basicConfig(filename='Logs/api.log', level=logging.ERROR, format='%(asctime)s - %(levelname)s - %(message)s')
|
|
|
|
@app.route('/api/download', methods=['GET'])
|
|
def download_data():
|
|
try:
|
|
project = request.args.get('project')
|
|
task = request.args.get('task')
|
|
# Lógica: query DB y devolver JSON/CSV
|
|
conn = get_db_connection() # Importa de Utils
|
|
query = f"SELECT * FROM {task} WHERE project = '{project}'"
|
|
df = pd.read_sql(query, conn)
|
|
conn.close()
|
|
return jsonify(df.to_dict(orient='records'))
|
|
except Exception as e:
|
|
logging.error(f"API falló: {str(e)}")
|
|
return jsonify({"error": "Error interno del servidor"}), 500 # Devuelve error, pero Flask sigue vivo |