v2.2 - Small improvement Interface change
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
"""Admin-only review UI for staged Alfred Developer proposals.
|
||||
|
||||
No web endpoint can deploy, restart, execute code or run shell commands.
|
||||
"""
|
||||
from flask import Blueprint, jsonify, render_template, request
|
||||
from services import admin_console
|
||||
from services import alfred_developer_core as dev
|
||||
|
||||
|
||||
def register_developer_page(app):
|
||||
bp=Blueprint('alfred_developer_ui',__name__)
|
||||
|
||||
@bp.get('/maintenance')
|
||||
def maintenance_page():
|
||||
return render_template('alfred_maintenance.html')
|
||||
|
||||
@bp.get('/api/control/developer/tasks')
|
||||
@admin_console._require_admin
|
||||
def tasks():
|
||||
return jsonify(ok=True, tasks=dev.list_tasks())
|
||||
|
||||
@bp.get('/api/control/developer/tasks/<pid>')
|
||||
@admin_console._require_admin
|
||||
def detail(pid):
|
||||
try:return jsonify(ok=True, task=dev.task_detail(pid))
|
||||
except (ValueError,OSError,RuntimeError) as e:return jsonify(error=str(e)),400
|
||||
|
||||
@bp.post('/api/control/developer/tasks/<pid>/decision')
|
||||
@admin_console._require_admin
|
||||
def decide(pid):
|
||||
data=request.get_json(silent=True) or {}
|
||||
try:
|
||||
return jsonify(ok=True, result=dev.approve(pid,data.get('decision'),data.get('diff_sha256')))
|
||||
except (ValueError,OSError,RuntimeError) as e:
|
||||
return jsonify(error=str(e)),400
|
||||
|
||||
app.register_blueprint(bp)
|
||||
Reference in New Issue
Block a user