22 lines
942 B
Python
22 lines
942 B
Python
from flask import request, jsonify
|
|
|
|
import screens
|
|
|
|
from core.flask_app import app
|
|
|
|
|
|
@app.route("/game/<slug>/screens/<int:screen_id>/flow/nodes/add", methods=["POST"])
|
|
def flow_node_add(slug, screen_id):
|
|
"""Ajoute un nœud (Déclencheur / Condition / Action) au graphe de
|
|
logique de cet écran — appelé en AJAX depuis le panneau "Logique de la
|
|
scène", pour que poser un nœud ne recharge jamais toute la page."""
|
|
payload = request.get_json(force=True) or {}
|
|
node_type = payload.get("node_type")
|
|
if node_type not in ("trigger", "condition", "action"):
|
|
return jsonify({"error": "type de nœud invalide"}), 400
|
|
x = float(payload.get("x", 40))
|
|
y = float(payload.get("y", 40))
|
|
fields = {k: v for k, v in payload.items() if k not in ("node_type", "x", "y")}
|
|
node_id = screens.add_flow_node(slug, screen_id, node_type, x=x, y=y, **fields)
|
|
return jsonify(screens.get_flow_node(slug, node_id))
|