ميزة: إضافة خدمة تحليلات لتكامل Google Analytics اختبار: تحديث اختبارات خدمة واجهة برمجة التطبيقات (API) لتعكس تغييرات نقاط النهاية إصلاح: تعديل خدمة واجهة برمجة التطبيقات (API) لدعم تحميل ملفات متعددة ومصادقة المستخدم ميزة: تطبيق مخزن مصادقة باستخدام Zustand لإدارة المستخدمين إصلاح: تحسين إعدادات Nginx لتعزيز الأمان ودعم التحليلات
33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
"""Authenticated file history routes."""
|
|
from flask import Blueprint, jsonify, request
|
|
|
|
from app.extensions import limiter
|
|
from app.services.account_service import get_user_by_id, list_file_history
|
|
from app.services.policy_service import get_history_limit
|
|
from app.utils.auth import get_current_user_id
|
|
|
|
history_bp = Blueprint("history", __name__)
|
|
|
|
|
|
@history_bp.route("/history", methods=["GET"])
|
|
@limiter.limit("120/hour")
|
|
def list_history_route():
|
|
"""Return recent generated-file history for the authenticated user."""
|
|
user_id = get_current_user_id()
|
|
if user_id is None:
|
|
return jsonify({"error": "Authentication required."}), 401
|
|
|
|
user = get_user_by_id(user_id)
|
|
if user is None:
|
|
return jsonify({"error": "User not found."}), 404
|
|
|
|
plan_limit = get_history_limit(user["plan"])
|
|
|
|
try:
|
|
requested = int(request.args.get("limit", plan_limit))
|
|
except ValueError:
|
|
requested = plan_limit
|
|
|
|
limit = max(1, min(plan_limit, requested))
|
|
return jsonify({"items": list_file_history(user_id, limit=limit)}), 200
|