Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+72
View File
@@ -0,0 +1,72 @@
from datetime import timedelta
from flask import Blueprint, jsonify, request
from app.routes.auth_decorators import require_auth
from app.services.feed_quality.evaluator import reevaluate_feed_alerts_for_period
from app.services.feed_quality.query import feed_alerts_summary, list_feed_alerts
from app.services.feed_quality.settings_store import (
normalize_settings,
save_feed_quality_settings,
settings_for_api,
)
from app.timeutil import utc_now_naive
bp = Blueprint("feed_quality", __name__, url_prefix="/api/feed-quality")
@bp.get("/settings")
@require_auth
def get_settings():
return jsonify(settings_for_api())
@bp.put("/settings")
@require_auth
def put_settings():
body = request.get_json(silent=True) or {}
partial = body.get("settings") if isinstance(body.get("settings"), dict) else body
try:
saved = save_feed_quality_settings(normalize_settings(partial))
except (TypeError, ValueError) as exc:
return jsonify({"error": True, "message": str(exc)}), 400
today = utc_now_naive().date()
week_ago = today - timedelta(days=7)
reevaluated = reevaluate_feed_alerts_for_period(
date_from=week_ago.isoformat(),
date_to=today.isoformat(),
limit=500,
)
return jsonify({"saved": True, "settings": saved, "reevaluatedReports": reevaluated})
@bp.get("/alerts/summary")
@require_auth
def alerts_summary():
return jsonify(
feed_alerts_summary(
date_from=request.args.get("date_from"),
date_to=request.args.get("date_to"),
dispenser_id=request.args.get("dispenser_id"),
)
)
@bp.get("/alerts")
@require_auth
def alerts_list():
try:
limit = int(request.args.get("limit", 200))
except (TypeError, ValueError):
limit = 200
return jsonify(
list_feed_alerts(
date_from=request.args.get("date_from"),
date_to=request.args.get("date_to"),
severity=request.args.get("severity"),
event_type=request.args.get("event_type"),
dispenser_id=request.args.get("dispenser_id"),
limit=limit,
)
)