104 lines
4.2 KiB
Bash
104 lines
4.2 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# Complete Services Verification - Database to Frontend
|
||
|
|
|
||
|
|
echo "╔════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ Complete Services Flow Verification ║"
|
||
|
|
echo "╚════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 1. Database Check
|
||
|
|
echo "🔹 Step 1: Database Check"
|
||
|
|
cd /media/pts/Website/PromptTech_Solution_Site/backend
|
||
|
|
source venv/bin/activate
|
||
|
|
python3 << 'EOF'
|
||
|
|
import asyncio
|
||
|
|
from database import AsyncSessionLocal
|
||
|
|
from sqlalchemy import select, func
|
||
|
|
from models import Service
|
||
|
|
|
||
|
|
async def check():
|
||
|
|
async with AsyncSessionLocal() as session:
|
||
|
|
result = await session.execute(
|
||
|
|
select(func.count(Service.id)).where(Service.is_active == True)
|
||
|
|
)
|
||
|
|
count = result.scalar()
|
||
|
|
print(f" ✅ Database has {count} active services")
|
||
|
|
|
||
|
|
asyncio.run(check())
|
||
|
|
EOF
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 2. Backend API Check
|
||
|
|
echo "🔹 Step 2: Backend API Check"
|
||
|
|
API_RESPONSE=$(curl -s http://localhost:8181/api/services)
|
||
|
|
API_COUNT=$(echo "$API_RESPONSE" | python3 -c 'import sys,json; print(len(json.load(sys.stdin)))' 2>/dev/null || echo "ERROR")
|
||
|
|
if [ "$API_COUNT" = "ERROR" ]; then
|
||
|
|
echo " ❌ Backend API error"
|
||
|
|
else
|
||
|
|
echo " ✅ Backend API returns $API_COUNT services"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 3. Frontend Server Check
|
||
|
|
echo "🔹 Step 3: Frontend Server Check"
|
||
|
|
FRONTEND_STATUS=$(curl -s -o /dev/null -w "%{http_code}" http://localhost:5300)
|
||
|
|
if [ "$FRONTEND_STATUS" = "200" ]; then
|
||
|
|
echo " ✅ Frontend server responding (HTTP $FRONTEND_STATUS)"
|
||
|
|
else
|
||
|
|
echo " ❌ Frontend server issue (HTTP $FRONTEND_STATUS)"
|
||
|
|
fi
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 4. PM2 Status
|
||
|
|
echo "🔹 Step 4: PM2 Process Status"
|
||
|
|
pm2 list | grep techzone | awk '{print " " $2 ": " $10}'
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 5. Test URLs
|
||
|
|
echo "╔════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ Test URLs - Open in Browser ║"
|
||
|
|
echo "╚════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
echo "1. Debug Page (shows API fetch in real-time):"
|
||
|
|
echo " http://localhost:5300/debug-services"
|
||
|
|
echo ""
|
||
|
|
echo "2. Main Services Page:"
|
||
|
|
echo " http://localhost:5300/services"
|
||
|
|
echo ""
|
||
|
|
echo "3. Backend API Direct:"
|
||
|
|
echo " http://localhost:8181/api/services"
|
||
|
|
echo ""
|
||
|
|
echo "4. Test HTML Page:"
|
||
|
|
echo " http://localhost:8888/test_api.html"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 6. Sample Data
|
||
|
|
echo "╔════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ Sample Services Data ║"
|
||
|
|
echo "╚════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
echo "$API_RESPONSE" | python3 -c '
|
||
|
|
import sys, json
|
||
|
|
try:
|
||
|
|
services = json.load(sys.stdin)
|
||
|
|
for i, s in enumerate(services[:4], 1):
|
||
|
|
print(f" {i}. {s[\"name\"]} ({s[\"category\"]}) - ${s[\"price\"]}")
|
||
|
|
except:
|
||
|
|
print(" Could not parse services")
|
||
|
|
'
|
||
|
|
echo " ... and more"
|
||
|
|
echo ""
|
||
|
|
|
||
|
|
# 7. Browser Cache Warning
|
||
|
|
echo "╔════════════════════════════════════════════════════════╗"
|
||
|
|
echo "║ IMPORTANT: Clear Browser Cache! ║"
|
||
|
|
echo "╚════════════════════════════════════════════════════════╝"
|
||
|
|
echo ""
|
||
|
|
echo "If services don't show, you MUST clear browser cache:"
|
||
|
|
echo " • Press: Ctrl+Shift+R (hard refresh)"
|
||
|
|
echo " • Or: Open DevTools (F12) → Network tab → Disable cache"
|
||
|
|
echo " • Or: Try incognito/private window"
|
||
|
|
echo ""
|
||
|
|
echo "The backend is working! It's a browser caching issue."
|
||
|
|
echo ""
|