42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
"""Flask App-Factory – Einstiegspunkt des BSN-Livesystems."""
|
||
|
||
from __future__ import annotations
|
||
|
||
from flask import Flask
|
||
|
||
from src.config import settings
|
||
from src.error_handler import register_error_handlers
|
||
from src.logging_config import setup_logging
|
||
from src.queue.handler import QueueHandler
|
||
from src.routes.admin import admin_bp
|
||
from src.routes.health import health_bp
|
||
from src.routes.telegram import telegram_bp
|
||
from src.routes.whatsapp import whatsapp_bp
|
||
|
||
|
||
def create_app() -> Flask:
|
||
"""Erstellt und konfiguriert die Flask-App.
|
||
|
||
Nutzt das App-Factory-Pattern für saubere Initialisierung.
|
||
Der QueueHandler wird als App-Extension hinterlegt.
|
||
|
||
Returns:
|
||
Die konfigurierte Flask-App-Instanz.
|
||
"""
|
||
app = Flask(__name__)
|
||
|
||
setup_logging()
|
||
register_error_handlers(app)
|
||
|
||
app.queue_handler = QueueHandler(
|
||
redis_host=settings.REDIS_HOST,
|
||
redis_port=settings.REDIS_PORT,
|
||
)
|
||
|
||
app.register_blueprint(telegram_bp, url_prefix="/webhook")
|
||
app.register_blueprint(whatsapp_bp, url_prefix="/webhook")
|
||
app.register_blueprint(admin_bp, url_prefix="/admin")
|
||
app.register_blueprint(health_bp)
|
||
|
||
return app
|