Corp/backend/scripts/diagnostic/check_pagination.py
2026-09-07 19:43:48 +03:00

48 lines
1.3 KiB
Python

import os
import sys
import django
sys.path.insert(0, os.path.dirname(__file__))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "eusrr_backend.settings")
django.setup()
from django.contrib.auth import get_user_model
from rest_framework.test import APIClient
User = get_user_model()
admin = User.objects.filter(is_superuser=True).first()
client = APIClient()
client.force_authenticate(user=admin)
print("=" * 70)
print("PAGINATION CHECK")
print("=" * 70)
endpoints = [
("Departments", "/api/v1/departments/"),
("Employees", "/api/v1/employees/"),
("Documents", "/api/v1/documents/"),
("Requests", "/api/v1/requests/"),
]
for name, url in endpoints:
print(f"\n{name} ({url})")
print("-" * 70)
resp = client.get(url)
if resp.status_code == 200:
data = resp.json()
if isinstance(data, dict) and "results" in data:
print("OK Paginated")
print(f"Total: {data.get('count', '?')}")
print(f"Page size: {len(data.get('results', []))}")
print(f"Next: {'Yes' if data.get('next') else 'No'}")
elif isinstance(data, list):
print("ERROR Not paginated (list)")
print(f"Items: {len(data)}")
else:
print(f"ERROR HTTP {resp.status_code}")
print("\n" + "=" * 70)