GDPRScanner/routes/profiles.py
2026-04-11 04:38:11 +02:00

48 lines
1.4 KiB
Python

"""
Scan profiles
"""
from __future__ import annotations
from flask import Blueprint, jsonify, request
from app_config import _profiles_load, _profile_save, _profile_delete, _profile_get
bp = Blueprint("profiles", __name__)
@bp.route("/api/profiles", methods=["GET"])
def profiles_list():
"""Return all saved profiles."""
return jsonify({"profiles": _profiles_load()})
@bp.route("/api/profiles/save", methods=["POST"])
def profiles_save():
"""Create or update a profile."""
profile = request.get_json() or {}
if not profile.get("name"):
return jsonify({"error": "name required"}), 400
saved = _profile_save(profile)
return jsonify({"status": "saved", "profile": saved})
@bp.route("/api/profiles/delete", methods=["POST"])
def profiles_delete():
"""Delete a profile by name or id."""
data = request.get_json() or {}
key = data.get("name") or data.get("id", "")
if not key:
return jsonify({"error": "name or id required"}), 400
ok = _profile_delete(key)
return jsonify({"status": "deleted" if ok else "not_found"})
@bp.route("/api/profiles/get")
def profiles_get():
"""Return a single profile by name or id."""
key = request.args.get("name") or request.args.get("id", "")
p = _profile_get(key)
if not p:
return jsonify({"error": "not found"}), 404
return jsonify({"profile": p})