From 2ca7ae538f616039cb975ffe1318f154a629f019 Mon Sep 17 00:00:00 2001 From: zwitschi Date: Wed, 29 Apr 2026 18:58:04 +0200 Subject: [PATCH] feat: add admin API endpoints for video management, update frontend to use new API routes Co-authored-by: Copilot --- frontend/app/main.py | 33 +++++++++++++++++++++++++++++++ frontend/app/templates/admin.html | 16 ++++++--------- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/frontend/app/main.py b/frontend/app/main.py index 3251e72..8112d8c 100644 --- a/frontend/app/main.py +++ b/frontend/app/main.py @@ -523,6 +523,39 @@ def admin_videos(): return render_template("admin/videos.html") +# ── Admin API proxies (same-origin for browser JS, avoids mixed-content) ── + +@app.get("/api/admin/videos") +@admin_required +def api_admin_list_videos(): + resp = _api("GET", "/admin/videos", token=session["access_token"]) + return jsonify(resp.json()), resp.status_code + + +@app.post("/api/admin/videos//retry") +@admin_required +def api_admin_retry_video(job_id: str): + resp = _api( + "POST", f"/admin/videos/{job_id}/retry", token=session["access_token"]) + return jsonify(resp.json()), resp.status_code + + +@app.post("/api/admin/videos//cancel") +@admin_required +def api_admin_cancel_video(job_id: str): + resp = _api( + "POST", f"/admin/videos/{job_id}/cancel", token=session["access_token"]) + return jsonify(resp.json()), resp.status_code + + +@app.delete("/api/admin/videos/") +@admin_required +def api_admin_delete_video(job_id: str): + resp = _api( + "DELETE", f"/admin/videos/{job_id}", token=session["access_token"]) + return jsonify(resp.json()), resp.status_code + + # ── Profile ─────────────────────────────────────────────────────────────── @app.route("/users/profile", methods=["GET", "POST"]) diff --git a/frontend/app/templates/admin.html b/frontend/app/templates/admin.html index 638ed69..81cce50 100644 --- a/frontend/app/templates/admin.html +++ b/frontend/app/templates/admin.html @@ -139,17 +139,13 @@