Coverage for src / local_deep_research / research_scheduler / routes.py: 90%
35 statements
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 01:07 +0000
« prev ^ index » next coverage.py v7.13.4, created at 2026-02-25 01:07 +0000
1"""
2API routes for document scheduler management.
3"""
5from flask import Blueprint, jsonify, session
6from loguru import logger
8from ..web.auth.decorators import login_required
9from .document_scheduler import get_document_scheduler
11# Create blueprint
12scheduler_bp = Blueprint("document_scheduler", __name__)
15def get_current_username():
16 """Get current username from session."""
17 return session.get("username")
20@scheduler_bp.route("/api/scheduler/status", methods=["GET"])
21@login_required
22def get_scheduler_status():
23 """Get the current status of the document scheduler for the current user."""
24 try:
25 username = get_current_username()
26 if not username: 26 ↛ 27line 26 didn't jump to line 27 because the condition on line 26 was never true
27 return jsonify({"error": "User not authenticated"}), 401
29 scheduler = get_document_scheduler()
30 status = scheduler.get_status(username)
31 return jsonify(status)
32 except Exception:
33 logger.exception("Error getting scheduler status")
34 return jsonify({"error": "Failed to get scheduler status"}), 500
37@scheduler_bp.route("/api/scheduler/run-now", methods=["POST"])
38@login_required
39def trigger_manual_run():
40 """Trigger a manual processing run of the document scheduler for the current user."""
41 try:
42 username = get_current_username()
43 if not username: 43 ↛ 44line 43 didn't jump to line 44 because the condition on line 43 was never true
44 return jsonify({"error": "User not authenticated"}), 401
46 scheduler = get_document_scheduler()
47 success, message = scheduler.trigger_manual_run(username)
49 if success:
50 return jsonify({"message": message})
51 else:
52 return jsonify({"error": message}), 400
53 except Exception:
54 logger.exception("Error triggering manual run")
55 return jsonify({"error": "Failed to trigger manual run"}), 500