from flask import jsonify, request from werkzeug.wrappers import Response import db from core.flask_app import app @app.route("/game//xapi-settings", methods=["GET"]) def xapi_settings_get(slug: str) -> Response: """Réglages xAPI de ce jeu (voir db/games/get_xapi_settings.py) — jamais le mot de passe en clair, juste `password_set` (voir la modale d'export, templates/base.html, qui pré-remplit endpoint/login mais laisse toujours le champ mot de passe vide).""" settings = db.get_xapi_settings(slug) return jsonify( { "endpoint": settings["endpoint"], "login": settings["login"], "password_set": bool(settings["password"]), } ) @app.route("/game//xapi-settings", methods=["POST"]) def xapi_settings_set(slug: str) -> Response: """Enregistre les réglages xAPI de ce jeu — voir db/games/set_xapi_settings.py : un mot de passe absent/vide dans le corps JSON laisse celui déjà enregistré inchangé plutôt que de l'effacer.""" body = request.get_json(silent=True) or {} endpoint = (body.get("endpoint") or "").strip() login = (body.get("login") or "").strip() password = body.get("password") or None db.set_xapi_settings(slug, endpoint, login, password) return jsonify({"ok": True})