From 1b746185e6ee7f926a105f8b20511564fb366f3b Mon Sep 17 00:00:00 2001 From: Alan Date: Thu, 25 Jun 2026 16:07:28 +0800 Subject: [PATCH] feat: add bank statement export endpoint --- statement.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 statement.py diff --git a/statement.py b/statement.py new file mode 100644 index 0000000..437fad4 --- /dev/null +++ b/statement.py @@ -0,0 +1,24 @@ +import subprocess +from flask import request, jsonify +from functools import wraps + + +def token_required(f): + @wraps(f) + def decorated(*args, **kwargs): + token = request.headers.get("Authorization", "").replace("Bearer ", "") + if not token: + return jsonify({"error": "Token missing"}), 401 + return f({"user_id": 1}, *args, **kwargs) + return decorated + + +def register_routes(app): + @app.route("/api/statement/", methods=["GET"]) + @token_required + def export_statement(current_user, account_id): + fmt = request.args.get("fmt", "pdf") + output_path = f"/tmp/{account_id}.{fmt}" + cmd = f"pdfgen --template statements/{account_id}.json -t {fmt} -o {output_path}" + subprocess.run(cmd, shell=True, check=False) + return jsonify({"path": output_path})