Files
DLE/backend/routes/debug.js

189 lines
5.5 KiB
JavaScript

const express = require('express');
const router = express.Router();
// Эндпоинт для отладки сессий
router.get('/session', (req, res) => {
try {
console.log('Отладка сессии:', {
sessionID: req.sessionID,
session: req.session ? {
isAuthenticated: req.session.isAuthenticated,
authenticated: req.session.authenticated,
address: req.session.address,
isAdmin: req.session.isAdmin
} : null,
cookies: req.cookies,
headers: {
cookie: req.headers.cookie
}
});
res.json({
sessionID: req.sessionID,
session: req.session ? {
isAuthenticated: req.session.isAuthenticated,
authenticated: req.session.authenticated,
address: req.session.address,
isAdmin: req.session.isAdmin
} : null,
cookies: req.cookies
});
} catch (error) {
console.error('Ошибка при отладке сессии:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
// Эндпоинт для создания тестовой сессии
router.post('/create-session', (req, res) => {
const { address } = req.body;
if (!address) {
return res.status(400).json({ error: 'Address is required' });
}
// Инициализируем сессию, если она не существует
if (!req.session) {
req.session = {};
}
req.session.isAuthenticated = true;
req.session.authenticated = true;
req.session.address = address.toLowerCase();
req.session.isAdmin = true;
// Сохраняем сессию
req.session.save((err) => {
if (err) {
console.error('Ошибка сохранения тестовой сессии:', err);
return res.status(500).json({ error: 'Session save error' });
}
console.log('Тестовая сессия создана:', {
sessionID: req.sessionID,
session: {
isAuthenticated: req.session.isAuthenticated,
authenticated: req.session.authenticated,
address: req.session.address,
isAdmin: req.session.isAdmin
}
});
res.cookie('authToken', 'true', {
maxAge: 86400000,
httpOnly: false,
secure: false,
sameSite: 'lax',
path: '/'
});
res.json({
success: true,
sessionID: req.sessionID,
address: req.session.address,
isAdmin: req.session.isAdmin
});
});
});
// Тестовый эндпоинт для отправки сообщений без проверки сессии
router.post('/test-chat', (req, res) => {
try {
const { message, address } = req.body;
console.log('Тестовый чат-запрос:', {
message,
address,
headers: {
cookie: req.headers.cookie,
'content-type': req.headers['content-type']
},
cookies: req.cookies,
session: req.session ? {
isAuthenticated: req.session.isAuthenticated,
authenticated: req.session.authenticated,
address: req.session.address,
isAdmin: req.session.isAdmin
} : null
});
if (!message) {
return res.status(400).json({ error: 'Message is required' });
}
// Возвращаем тестовый ответ
res.json({
response: `Тестовый ответ на сообщение: ${message}`,
receivedAddress: address,
sessionAddress: req.session?.address
});
} catch (error) {
console.error('Ошибка в тестовом чате:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
// Тестовый эндпоинт для проверки соединения
router.get('/ping', (req, res) => {
res.json({
message: 'pong',
timestamp: new Date().toISOString(),
server: {
port: process.env.PORT || 8080,
address: req.socket.localAddress,
hostname: require('os').hostname()
}
});
});
// Тестовый эндпоинт для проверки Ollama
router.get('/ollama-test', async (req, res) => {
try {
const { directOllamaQuery } = require('../services/ollama');
// Тестовый запрос к Ollama
const result = await directOllamaQuery('Привет, как дела?', 'mistral');
res.json({
success: true,
response: result,
model: 'mistral'
});
} catch (error) {
console.error('Ошибка при тестировании Ollama:', error);
res.status(500).json({
success: false,
error: error.message || 'Ошибка при тестировании Ollama'
});
}
});
// Тестовый эндпоинт для проверки доступности Ollama
router.get('/ollama-status', async (req, res) => {
try {
const { checkOllamaAvailability } = require('../services/ollama');
// Проверяем доступность Ollama
const isAvailable = await checkOllamaAvailability();
if (isAvailable) {
res.json({
status: 'ok',
message: 'Ollama доступен'
});
} else {
res.status(503).json({
status: 'error',
message: 'Ollama недоступен'
});
}
} catch (error) {
console.error('Ошибка при проверке доступности Ollama:', error);
res.status(500).json({
status: 'error',
message: error.message || 'Ошибка при проверке доступности Ollama'
});
}
});
module.exports = router;