ميزة: تحديث صفحات الخصوصية والشروط مع تاريخ آخر تحديث ثابت وفترة احتفاظ ديناميكية بالملفات
ميزة: إضافة خدمة تحليلات لتكامل Google Analytics اختبار: تحديث اختبارات خدمة واجهة برمجة التطبيقات (API) لتعكس تغييرات نقاط النهاية إصلاح: تعديل خدمة واجهة برمجة التطبيقات (API) لدعم تحميل ملفات متعددة ومصادقة المستخدم ميزة: تطبيق مخزن مصادقة باستخدام Zustand لإدارة المستخدمين إصلاح: تحسين إعدادات Nginx لتعزيز الأمان ودعم التحليلات
This commit is contained in:
32
backend/app/routes/history.py
Normal file
32
backend/app/routes/history.py
Normal file
@@ -0,0 +1,32 @@
|
||||
"""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
|
||||
Reference in New Issue
Block a user