mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-20 14:31:08 -05:00
650 lines
21 KiB
Bash
Executable File
650 lines
21 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# ThrillWiki API Endpoints - Complete Curl Commands
|
|
# Generated from comprehensive URL analysis
|
|
# Base URL - adjust as needed for your environment
|
|
BASE_URL="http://localhost:8000"
|
|
|
|
# Command line options
|
|
SKIP_AUTH=false
|
|
ONLY_AUTH=false
|
|
SKIP_DOCS=false
|
|
HELP=false
|
|
|
|
# Parse command line arguments
|
|
while [[ $# -gt 0 ]]; do
|
|
case $1 in
|
|
--skip-auth)
|
|
SKIP_AUTH=true
|
|
shift
|
|
;;
|
|
--only-auth)
|
|
ONLY_AUTH=true
|
|
shift
|
|
;;
|
|
--skip-docs)
|
|
SKIP_DOCS=true
|
|
shift
|
|
;;
|
|
--base-url)
|
|
BASE_URL="$2"
|
|
shift 2
|
|
;;
|
|
--help|-h)
|
|
HELP=true
|
|
shift
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1"
|
|
echo "Use --help for usage information"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Show help
|
|
if [ "$HELP" = true ]; then
|
|
echo "ThrillWiki API Endpoints Test Suite"
|
|
echo ""
|
|
echo "Usage: $0 [OPTIONS]"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " --skip-auth Skip endpoints that require authentication"
|
|
echo " --only-auth Only test endpoints that require authentication"
|
|
echo " --skip-docs Skip API documentation endpoints (schema, swagger, redoc)"
|
|
echo " --base-url URL Set custom base URL (default: http://localhost:8000)"
|
|
echo " --help, -h Show this help message"
|
|
echo ""
|
|
echo "Examples:"
|
|
echo " $0 # Test all endpoints"
|
|
echo " $0 --skip-auth # Test only public endpoints"
|
|
echo " $0 --only-auth # Test only authenticated endpoints"
|
|
echo " $0 --skip-docs --skip-auth # Test only public non-documentation endpoints"
|
|
echo " $0 --base-url https://api.example.com # Use custom base URL"
|
|
exit 0
|
|
fi
|
|
|
|
# Validate conflicting options
|
|
if [ "$SKIP_AUTH" = true ] && [ "$ONLY_AUTH" = true ]; then
|
|
echo "Error: --skip-auth and --only-auth cannot be used together"
|
|
exit 1
|
|
fi
|
|
|
|
echo "=== ThrillWiki API Endpoints Test Suite ==="
|
|
echo "Base URL: $BASE_URL"
|
|
if [ "$SKIP_AUTH" = true ]; then
|
|
echo "Mode: Public endpoints only (skipping authentication required)"
|
|
elif [ "$ONLY_AUTH" = true ]; then
|
|
echo "Mode: Authenticated endpoints only"
|
|
else
|
|
echo "Mode: All endpoints"
|
|
fi
|
|
if [ "$SKIP_DOCS" = true ]; then
|
|
echo "Skipping: API documentation endpoints"
|
|
fi
|
|
echo ""
|
|
|
|
# Helper function to check if we should run an endpoint
|
|
should_run_endpoint() {
|
|
local requires_auth=$1
|
|
local is_docs=$2
|
|
|
|
# Skip docs if requested
|
|
if [ "$SKIP_DOCS" = true ] && [ "$is_docs" = true ]; then
|
|
return 1
|
|
fi
|
|
|
|
# Skip auth endpoints if requested
|
|
if [ "$SKIP_AUTH" = true ] && [ "$requires_auth" = true ]; then
|
|
return 1
|
|
fi
|
|
|
|
# Only run auth endpoints if requested
|
|
if [ "$ONLY_AUTH" = true ] && [ "$requires_auth" = false ]; then
|
|
return 1
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
# Counter for endpoint numbering
|
|
ENDPOINT_NUM=1
|
|
|
|
# ============================================================================
|
|
# AUTHENTICATION ENDPOINTS (/api/v1/auth/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo "=== AUTHENTICATION ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. Login"
|
|
curl -X POST "$BASE_URL/api/v1/auth/login/" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username": "testuser", "password": "testpass"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Signup"
|
|
curl -X POST "$BASE_URL/api/v1/auth/signup/" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"username": "newuser", "email": "test@example.com", "password": "newpass123"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Logout"
|
|
curl -X POST "$BASE_URL/api/v1/auth/logout/" \
|
|
-H "Content-Type: application/json"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Password Reset"
|
|
curl -X POST "$BASE_URL/api/v1/auth/password/reset/" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"email": "user@example.com"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Social Providers"
|
|
curl -X GET "$BASE_URL/api/v1/auth/providers/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Auth Status"
|
|
curl -X GET "$BASE_URL/api/v1/auth/status/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Current User"
|
|
curl -X GET "$BASE_URL/api/v1/auth/user/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Password Change"
|
|
curl -X POST "$BASE_URL/api/v1/auth/password/change/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"old_password": "oldpass", "new_password": "newpass123"}'
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# HEALTH CHECK ENDPOINTS (/api/v1/health/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false; then
|
|
echo -e "\n\n=== HEALTH CHECK ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. Health Check"
|
|
curl -X GET "$BASE_URL/api/v1/health/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Simple Health"
|
|
curl -X GET "$BASE_URL/api/v1/health/simple/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Performance Metrics"
|
|
curl -X GET "$BASE_URL/api/v1/health/performance/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# TRENDING SYSTEM ENDPOINTS (/api/v1/trending/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false; then
|
|
echo -e "\n\n=== TRENDING SYSTEM ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. Trending Content"
|
|
curl -X GET "$BASE_URL/api/v1/trending/content/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. New Content"
|
|
curl -X GET "$BASE_URL/api/v1/trending/new/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# STATISTICS ENDPOINTS (/api/v1/stats/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== STATISTICS ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. Statistics"
|
|
curl -X GET "$BASE_URL/api/v1/stats/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Recalculate Statistics"
|
|
curl -X POST "$BASE_URL/api/v1/stats/recalculate/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# RANKING SYSTEM ENDPOINTS (/api/v1/rankings/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== RANKING SYSTEM ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. List Rankings"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. List Rankings with Filters"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/?category=RC&min_riders=10&ordering=rank"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ranking Detail"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/ride-slug-here/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ranking History"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/ride-slug-here/history/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ranking Statistics"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/statistics/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ranking Comparisons"
|
|
curl -X GET "$BASE_URL/api/v1/rankings/ride-slug-here/comparisons/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Trigger Ranking Calculation"
|
|
curl -X POST "$BASE_URL/api/v1/rankings/calculate/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"category": "RC"}'
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# PARKS API ENDPOINTS (/api/v1/parks/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== PARKS API ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. List Parks"
|
|
curl -X GET "$BASE_URL/api/v1/parks/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park Filter Options"
|
|
curl -X GET "$BASE_URL/api/v1/parks/filter-options/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park Company Search"
|
|
curl -X GET "$BASE_URL/api/v1/parks/search/companies/?q=disney"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park Search Suggestions"
|
|
curl -X GET "$BASE_URL/api/v1/parks/search-suggestions/?q=magic"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park Detail"
|
|
curl -X GET "$BASE_URL/api/v1/parks/1/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. List Park Photos"
|
|
curl -X GET "$BASE_URL/api/v1/parks/1/photos/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park Photo Detail"
|
|
curl -X GET "$BASE_URL/api/v1/parks/1/photos/1/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Create Park"
|
|
curl -X POST "$BASE_URL/api/v1/parks/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "Test Park", "location": "Test City"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Park"
|
|
curl -X PUT "$BASE_URL/api/v1/parks/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "Updated Park Name"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Park"
|
|
curl -X DELETE "$BASE_URL/api/v1/parks/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Create Park Photo"
|
|
curl -X POST "$BASE_URL/api/v1/parks/1/photos/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-F "image=@/path/to/photo.jpg" \
|
|
-F "caption=Test photo"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Park Photo"
|
|
curl -X PUT "$BASE_URL/api/v1/parks/1/photos/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"caption": "Updated caption"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Park Photo"
|
|
curl -X DELETE "$BASE_URL/api/v1/parks/1/photos/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# RIDES API ENDPOINTS (/api/v1/rides/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== RIDES API ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. List Rides"
|
|
curl -X GET "$BASE_URL/api/v1/rides/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Filter Options"
|
|
curl -X GET "$BASE_URL/api/v1/rides/filter-options/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Company Search"
|
|
curl -X GET "$BASE_URL/api/v1/rides/search/companies/?q=intamin"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Model Search"
|
|
curl -X GET "$BASE_URL/api/v1/rides/search/ride-models/?q=giga"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Search Suggestions"
|
|
curl -X GET "$BASE_URL/api/v1/rides/search-suggestions/?q=millennium"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Detail"
|
|
curl -X GET "$BASE_URL/api/v1/rides/1/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. List Ride Photos"
|
|
curl -X GET "$BASE_URL/api/v1/rides/1/photos/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride Photo Detail"
|
|
curl -X GET "$BASE_URL/api/v1/rides/1/photos/1/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Create Ride"
|
|
curl -X POST "$BASE_URL/api/v1/rides/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "Test Coaster", "category": "RC", "park": 1}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Ride"
|
|
curl -X PUT "$BASE_URL/api/v1/rides/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "Updated Ride Name"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Ride"
|
|
curl -X DELETE "$BASE_URL/api/v1/rides/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Create Ride Photo"
|
|
curl -X POST "$BASE_URL/api/v1/rides/1/photos/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-F "image=@/path/to/photo.jpg" \
|
|
-F "caption=Test ride photo"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Ride Photo"
|
|
curl -X PUT "$BASE_URL/api/v1/rides/1/photos/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"caption": "Updated ride photo caption"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Ride Photo"
|
|
curl -X DELETE "$BASE_URL/api/v1/rides/1/photos/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# ACCOUNTS API ENDPOINTS (/api/v1/accounts/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== ACCOUNTS API ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. List User Profiles"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/profiles/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. User Profile Detail"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/profiles/1/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. List Top Lists"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/toplists/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Top List Detail"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/toplists/1/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. List Top List Items"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/toplist-items/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Top List Item Detail"
|
|
curl -X GET "$BASE_URL/api/v1/accounts/toplist-items/1/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Update User Profile"
|
|
curl -X PUT "$BASE_URL/api/v1/accounts/profiles/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"bio": "Updated bio"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Create Top List"
|
|
curl -X POST "$BASE_URL/api/v1/accounts/toplists/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "My Top Coasters", "description": "My favorite roller coasters"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Top List"
|
|
curl -X PUT "$BASE_URL/api/v1/accounts/toplists/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"name": "Updated Top List Name"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Top List"
|
|
curl -X DELETE "$BASE_URL/api/v1/accounts/toplists/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Create Top List Item"
|
|
curl -X POST "$BASE_URL/api/v1/accounts/toplist-items/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"toplist": 1, "ride": 1, "position": 1}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Update Top List Item"
|
|
curl -X PUT "$BASE_URL/api/v1/accounts/toplist-items/1/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"position": 2}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Delete Top List Item"
|
|
curl -X DELETE "$BASE_URL/api/v1/accounts/toplist-items/1/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# HISTORY API ENDPOINTS (/api/v1/history/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false; then
|
|
echo -e "\n\n=== HISTORY API ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. Park History List"
|
|
curl -X GET "$BASE_URL/api/v1/history/parks/park-slug/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Park History Detail"
|
|
curl -X GET "$BASE_URL/api/v1/history/parks/park-slug/detail/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride History List"
|
|
curl -X GET "$BASE_URL/api/v1/history/parks/park-slug/rides/ride-slug/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Ride History Detail"
|
|
curl -X GET "$BASE_URL/api/v1/history/parks/park-slug/rides/ride-slug/detail/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Unified Timeline"
|
|
curl -X GET "$BASE_URL/api/v1/history/timeline/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Unified Timeline Detail"
|
|
curl -X GET "$BASE_URL/api/v1/history/timeline/1/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# EMAIL API ENDPOINTS (/api/v1/email/)
|
|
# ============================================================================
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n\n=== EMAIL API ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. Send Email"
|
|
curl -X POST "$BASE_URL/api/v1/email/send/" \
|
|
-H "Content-Type: application/json" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE" \
|
|
-d '{"to": "recipient@example.com", "subject": "Test", "message": "Test message"}'
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# CORE API ENDPOINTS (/api/v1/core/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false; then
|
|
echo -e "\n\n=== CORE API ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. Entity Fuzzy Search"
|
|
curl -X GET "$BASE_URL/api/v1/core/entities/search/?q=disney"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Entity Not Found"
|
|
curl -X POST "$BASE_URL/api/v1/core/entities/not-found/" \
|
|
-H "Content-Type: application/json" \
|
|
-d '{"query": "nonexistent park", "type": "park"}'
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Entity Suggestions"
|
|
curl -X GET "$BASE_URL/api/v1/core/entities/suggestions/?q=magic"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# MAPS API ENDPOINTS (/api/v1/maps/)
|
|
# ============================================================================
|
|
if should_run_endpoint false false || should_run_endpoint true false; then
|
|
echo -e "\n\n=== MAPS API ENDPOINTS ==="
|
|
fi
|
|
|
|
if should_run_endpoint false false; then
|
|
echo "$ENDPOINT_NUM. Map Locations"
|
|
curl -X GET "$BASE_URL/api/v1/maps/locations/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Map Location Detail"
|
|
curl -X GET "$BASE_URL/api/v1/maps/locations/park/1/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Map Search"
|
|
curl -X GET "$BASE_URL/api/v1/maps/search/?q=disney"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Map Bounds Query"
|
|
curl -X GET "$BASE_URL/api/v1/maps/bounds/?north=40.7&south=40.6&east=-73.9&west=-74.0"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Map Statistics"
|
|
curl -X GET "$BASE_URL/api/v1/maps/stats/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Map Cache Status"
|
|
curl -X GET "$BASE_URL/api/v1/maps/cache/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
if should_run_endpoint true false; then
|
|
echo -e "\n$ENDPOINT_NUM. Invalidate Map Cache"
|
|
curl -X POST "$BASE_URL/api/v1/maps/cache/invalidate/" \
|
|
-H "Authorization: Bearer YOUR_TOKEN_HERE"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# API DOCUMENTATION ENDPOINTS
|
|
# ============================================================================
|
|
if should_run_endpoint false true; then
|
|
echo -e "\n\n=== API DOCUMENTATION ENDPOINTS ==="
|
|
|
|
echo "$ENDPOINT_NUM. OpenAPI Schema"
|
|
curl -X GET "$BASE_URL/api/schema/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. Swagger UI"
|
|
curl -X GET "$BASE_URL/api/docs/"
|
|
((ENDPOINT_NUM++))
|
|
|
|
echo -e "\n$ENDPOINT_NUM. ReDoc"
|
|
curl -X GET "$BASE_URL/api/redoc/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
# ============================================================================
|
|
# HEALTH CHECK (Django Health Check)
|
|
# ============================================================================
|
|
if should_run_endpoint false false; then
|
|
echo -e "\n\n=== DJANGO HEALTH CHECK ==="
|
|
|
|
echo "$ENDPOINT_NUM. Django Health Check"
|
|
curl -X GET "$BASE_URL/health/"
|
|
((ENDPOINT_NUM++))
|
|
fi
|
|
|
|
echo -e "\n\n=== END OF API ENDPOINTS TEST SUITE ==="
|
|
echo "Total endpoints tested: $((ENDPOINT_NUM - 1))"
|
|
echo ""
|
|
echo "Notes:"
|
|
echo "- Replace YOUR_TOKEN_HERE with actual authentication tokens"
|
|
echo "- Replace /path/to/photo.jpg with actual file paths for photo uploads"
|
|
echo "- Replace numeric IDs (1, 2, etc.) with actual resource IDs"
|
|
echo "- Replace slug placeholders (park-slug, ride-slug) with actual slugs"
|
|
echo "- Adjust BASE_URL for your environment (localhost:8000, staging, production)"
|
|
echo ""
|
|
echo "Authentication required endpoints are marked with Authorization header"
|
|
echo "File upload endpoints use multipart/form-data (-F flag)"
|
|
echo "JSON endpoints use application/json content type"
|