from flask import Flask, request, jsonify, render_template_string from .manager import TradingTwinsManager app = Flask(__name__) manager = TradingTwinsManager() # Einfaches HTML-Template für Feedback HTML_TEMPLATE = """ Trading Twins Status

{title}

{message}

Job ID: {job_uuid}

""" @app.route('/action/approve/', methods=['GET']) def approve_job(job_uuid): current_status = manager.get_job_status(job_uuid) if not current_status: return render_template_string(HTML_TEMPLATE, title="Fehler", status_class="cancelled", message="Job nicht gefunden.", job_uuid=job_uuid), 404 if current_status == 'pending': manager.update_job_status(job_uuid, 'approved') # TODO: Hier würde der E-Mail-Versand sofort getriggert werden (Phase 3) return render_template_string(HTML_TEMPLATE, title="Erfolg", status_class="success", message="✅ E-Mail wird jetzt versendet!", job_uuid=job_uuid) elif current_status == 'approved': return render_template_string(HTML_TEMPLATE, title="Info", status_class="success", message="⚠️ Job wurde bereits genehmigt.", job_uuid=job_uuid) else: return render_template_string(HTML_TEMPLATE, title="Info", status_class="cancelled", message=f"Job-Status ist bereits: {current_status}", job_uuid=job_uuid) @app.route('/action/cancel/', methods=['GET']) def cancel_job(job_uuid): current_status = manager.get_job_status(job_uuid) if not current_status: return render_template_string(HTML_TEMPLATE, title="Fehler", status_class="cancelled", message="Job nicht gefunden.", job_uuid=job_uuid), 404 if current_status == 'pending': manager.update_job_status(job_uuid, 'cancelled') return render_template_string(HTML_TEMPLATE, title="Abbruch", status_class="cancelled", message="❌ E-Mail-Versand gestoppt.", job_uuid=job_uuid) else: return render_template_string(HTML_TEMPLATE, title="Info", status_class="info", message=f"Job konnte nicht gestoppt werden (Status: {current_status}).", job_uuid=job_uuid) if __name__ == '__main__': app.run(host='0.0.0.0', port=8004)