131 lines
3.8 KiB
Markdown
131 lines
3.8 KiB
Markdown
|
|
# 🔍 Diagnóstico del Panel de Administración
|
|||
|
|
|
|||
|
|
## Pasos para diagnosticar el problema
|
|||
|
|
|
|||
|
|
### 1. Abre la consola del navegador
|
|||
|
|
- Presiona `F12` o `Ctrl+Shift+I`
|
|||
|
|
- Ve a la pestaña **Console**
|
|||
|
|
|
|||
|
|
### 2. Ejecuta este código en la consola:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
// Diagnóstico completo
|
|||
|
|
(async () => {
|
|||
|
|
console.log('🔍 DIAGNÓSTICO DEL PANEL DE ADMINISTRACIÓN\n');
|
|||
|
|
|
|||
|
|
// 1. Verificar token
|
|||
|
|
const token = localStorage.getItem('admin_token');
|
|||
|
|
console.log('1️⃣ Token en localStorage:', token ? token.substring(0, 30) + '...' : '❌ NO HAY TOKEN');
|
|||
|
|
|
|||
|
|
// 2. Verificar usuario
|
|||
|
|
const user = localStorage.getItem('admin_user');
|
|||
|
|
console.log('2️⃣ Usuario en localStorage:', user ? JSON.parse(user).email : '❌ NO HAY USUARIO');
|
|||
|
|
|
|||
|
|
// 3. Probar endpoint de stats
|
|||
|
|
const API_URL = 'http://localhost:3000';
|
|||
|
|
try {
|
|||
|
|
const statsResponse = await fetch(`${API_URL}/api/stats/content`, {
|
|||
|
|
headers: {
|
|||
|
|
'Authorization': `Bearer ${token}`,
|
|||
|
|
'Content-Type': 'application/json'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('\n3️⃣ Respuesta de /api/stats/content:');
|
|||
|
|
console.log(' Status:', statsResponse.status);
|
|||
|
|
|
|||
|
|
if (statsResponse.ok) {
|
|||
|
|
const data = await statsResponse.json();
|
|||
|
|
console.log(' ✅ Datos recibidos:');
|
|||
|
|
console.log(' Protocolos:', data.protocols);
|
|||
|
|
console.log(' Guías:', data.guides);
|
|||
|
|
console.log(' Fármacos:', data.drugs);
|
|||
|
|
console.log(' Checklists:', data.checklists);
|
|||
|
|
} else {
|
|||
|
|
const error = await statsResponse.json();
|
|||
|
|
console.log(' ❌ Error:', error);
|
|||
|
|
}
|
|||
|
|
} catch (err) {
|
|||
|
|
console.log(' ❌ Error de red:', err.message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 4. Probar endpoint de content
|
|||
|
|
try {
|
|||
|
|
const contentResponse = await fetch(`${API_URL}/api/content`, {
|
|||
|
|
headers: {
|
|||
|
|
'Authorization': `Bearer ${token}`,
|
|||
|
|
'Content-Type': 'application/json'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('\n4️⃣ Respuesta de /api/content:');
|
|||
|
|
console.log(' Status:', contentResponse.status);
|
|||
|
|
|
|||
|
|
if (contentResponse.ok) {
|
|||
|
|
const data = await contentResponse.json();
|
|||
|
|
console.log(' ✅ Datos recibidos:');
|
|||
|
|
console.log(' Total items:', data.total);
|
|||
|
|
console.log(' Items en página:', data.items?.length || 0);
|
|||
|
|
} else {
|
|||
|
|
const error = await contentResponse.json();
|
|||
|
|
console.log(' ❌ Error:', error);
|
|||
|
|
}
|
|||
|
|
} catch (err) {
|
|||
|
|
console.log(' ❌ Error de red:', err.message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 5. Verificar backend
|
|||
|
|
try {
|
|||
|
|
const healthResponse = await fetch(`${API_URL}/health`);
|
|||
|
|
const health = await healthResponse.json();
|
|||
|
|
console.log('\n5️⃣ Estado del backend:');
|
|||
|
|
console.log(' Status:', health.status);
|
|||
|
|
console.log(' Database:', health.database);
|
|||
|
|
} catch (err) {
|
|||
|
|
console.log(' ❌ Backend no responde:', err.message);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
console.log('\n✅ Diagnóstico completo');
|
|||
|
|
})();
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. Copia y pega el resultado aquí
|
|||
|
|
|
|||
|
|
### 4. Si el token no existe o está expirado:
|
|||
|
|
|
|||
|
|
Ejecuta esto para hacer login:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
(async () => {
|
|||
|
|
const API_URL = 'http://localhost:3000';
|
|||
|
|
try {
|
|||
|
|
const response = await fetch(`${API_URL}/api/auth/login`, {
|
|||
|
|
method: 'POST',
|
|||
|
|
headers: {
|
|||
|
|
'Content-Type': 'application/json'
|
|||
|
|
},
|
|||
|
|
body: JSON.stringify({
|
|||
|
|
email: 'admin@emerges-tes.local',
|
|||
|
|
password: 'Admin123!'
|
|||
|
|
})
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
if (response.ok) {
|
|||
|
|
const data = await response.json();
|
|||
|
|
localStorage.setItem('admin_token', data.token);
|
|||
|
|
localStorage.setItem('admin_user', JSON.stringify(data.user));
|
|||
|
|
console.log('✅ Login exitoso');
|
|||
|
|
console.log('Usuario:', data.user.email);
|
|||
|
|
console.log('Token guardado');
|
|||
|
|
location.reload(); // Recargar página
|
|||
|
|
} else {
|
|||
|
|
const error = await response.json();
|
|||
|
|
console.error('❌ Error de login:', error);
|
|||
|
|
}
|
|||
|
|
} catch (err) {
|
|||
|
|
console.error('❌ Error de red:', err);
|
|||
|
|
}
|
|||
|
|
})();
|
|||
|
|
```
|
|||
|
|
|