from flask import Blueprint, jsonify, request import db test_bp = Blueprint("test", __name__) @test_bp.route("/test", methods=["GET", "POST"]) def test(): """Тестовый слой: проверка БД и выполнение запросов.""" # GET — статус if request.method == "GET": conn, err = db.connect() return jsonify({ "db": "ok" if conn else f"fail: {err}", "actions": [ "GET /test — статус БД", "POST /test SQL:... — выполнить запрос", "POST /test tables — список таблиц", ], }) # POST — выполнить действие data = request.get_json(silent=True) or {} action = data.get("action", "status") if action == "status": conn, err = db.connect() return jsonify({"db": "ok" if conn else f"fail: {err}"}) if action == "tables": result, err = db.query( "SELECT table_name FROM information_schema.tables WHERE table_schema='public' ORDER BY table_name" ) if err: return jsonify({"error": err}), 500 return jsonify({"tables": [r[0] for r in result["rows"]]}) if action == "sql": sql_text = data.get("sql", "") if not sql_text: return jsonify({"error": "no sql"}), 400 result, err = db.query(sql_text) if err: return jsonify({"error": err}), 500 return jsonify(result) return jsonify({"error": f"unknown action: {action}"}), 400