ваше сообщение коммита
This commit is contained in:
@@ -4,15 +4,12 @@ const crypto = require('crypto');
|
||||
const db = require('../db');
|
||||
const logger = require('../utils/logger');
|
||||
const rateLimit = require('express-rate-limit');
|
||||
const { checkRole, requireAuth, auth } = require('../middleware/auth');
|
||||
const { requireAuth } = require('../middleware/auth');
|
||||
const authService = require('../services/auth-service');
|
||||
const emailBot = require('../services/emailBot');
|
||||
const { verificationCodes } = require('../services/telegramBot');
|
||||
const { ethers } = require('ethers');
|
||||
const { initTelegramAuth } = require('../services/telegramBot');
|
||||
const emailAuth = require('../services/emailAuth');
|
||||
const verificationService = require('../services/verification-service');
|
||||
const { processGuestMessages } = require('./chat');
|
||||
const identityService = require('../services/identity-service');
|
||||
const sessionService = require('../services/session-service');
|
||||
|
||||
@@ -107,18 +104,11 @@ router.post('/verify', async (req, res) => {
|
||||
);
|
||||
|
||||
// Связываем кошелек с пользователем через identity-service для предотвращения дубликатов
|
||||
const linkResult = await authService.linkIdentity(userId, 'wallet', address);
|
||||
|
||||
if (!linkResult.success && linkResult.error) {
|
||||
return res.status(400).json({
|
||||
success: false,
|
||||
error: linkResult.error,
|
||||
});
|
||||
}
|
||||
await authService.linkIdentity(userId, 'wallet', address);
|
||||
|
||||
// Если linkResult.message содержит 'already exists', значит кошелек уже привязан
|
||||
logger.info(
|
||||
`[verify] Wallet ${normalizedAddress} linked to user ${userId}: ${linkResult.message || 'success'}`
|
||||
`[verify] Wallet ${normalizedAddress} linked to user ${userId}: already exists`
|
||||
);
|
||||
} else {
|
||||
// Находим или создаем пользователя, если не авторизован
|
||||
@@ -443,17 +433,13 @@ router.post('/email/verify-code', async (req, res) => {
|
||||
// Инициализация Telegram аутентификации
|
||||
router.post('/telegram/init', async (req, res) => {
|
||||
try {
|
||||
const { verificationCode, botLink } = await initTelegramAuth(req.session);
|
||||
const { userId } = req.session;
|
||||
|
||||
if (!verificationCode || !botLink) {
|
||||
throw new Error('Failed to generate verification code');
|
||||
}
|
||||
// Инициализируем процесс аутентификации через Telegram
|
||||
await initTelegramAuth(userId);
|
||||
|
||||
res.json({
|
||||
success: true,
|
||||
verificationCode,
|
||||
botLink,
|
||||
});
|
||||
// Не возвращаем данные обратно, так как они отправляются ботом
|
||||
res.json({ success: true, message: 'Проверьте вашего Telegram бота' });
|
||||
} catch (error) {
|
||||
logger.error('Error initializing Telegram auth:', error);
|
||||
|
||||
|
||||
@@ -2,11 +2,8 @@ const express = require('express');
|
||||
const router = express.Router();
|
||||
const aiAssistant = require('../services/ai-assistant');
|
||||
const db = require('../db');
|
||||
const { requireAuth, requireAdmin } = require('../middleware/auth');
|
||||
const logger = require('../utils/logger');
|
||||
const crypto = require('crypto');
|
||||
const { saveGuestMessageToDatabase } = require('../db');
|
||||
const { v4: uuidv4 } = require('uuid');
|
||||
const { requireAuth } = require('../middleware/auth');
|
||||
|
||||
// Функция для обработки гостевых сообщений после аутентификации
|
||||
async function processGuestMessages(userId, guestId) {
|
||||
|
||||
@@ -45,7 +45,7 @@ router.post('/link', requireAuth, async (req, res) => {
|
||||
}
|
||||
}
|
||||
|
||||
const result = await authService.linkIdentity(userId, type, value);
|
||||
await authService.linkIdentity(userId, type, value);
|
||||
|
||||
// Обновляем сессию
|
||||
if (type === 'wallet') {
|
||||
|
||||
@@ -3,6 +3,7 @@ const router = express.Router();
|
||||
const db = require('../db');
|
||||
const logger = require('../utils/logger');
|
||||
const { requireAuth } = require('../middleware/auth');
|
||||
// const userService = require('../services/userService');
|
||||
|
||||
// Получение списка пользователей
|
||||
router.get('/', (req, res) => {
|
||||
@@ -69,48 +70,53 @@ router.post('/update-profile', requireAuth, async (req, res) => {
|
||||
}
|
||||
});
|
||||
|
||||
// Маршрут для получения профиля пользователя
|
||||
router.get('/profile/current', requireAuth, async (req, res) => {
|
||||
// Получить профиль текущего пользователя
|
||||
/*
|
||||
router.get('/profile', requireAuth, async (req, res) => {
|
||||
try {
|
||||
const userId = req.session.userId;
|
||||
|
||||
// Получение данных пользователя
|
||||
const userResult = await db.query(
|
||||
'SELECT id, username, first_name, last_name, role, status, created_at, preferred_language FROM users WHERE id = $1',
|
||||
[userId]
|
||||
);
|
||||
|
||||
if (userResult.rows.length === 0) {
|
||||
return res.status(404).json({ error: 'Пользователь не найден' });
|
||||
const user = await userService.getUserProfile(userId);
|
||||
if (!user) {
|
||||
return res.status(404).json({ success: false, message: 'User not found' });
|
||||
}
|
||||
|
||||
// Получение идентификаторов пользователя
|
||||
const identitiesResult = await db.query(
|
||||
'SELECT provider, provider_id FROM user_identities WHERE user_id = $1',
|
||||
[userId]
|
||||
);
|
||||
|
||||
const user = userResult.rows[0];
|
||||
const identities = identitiesResult.rows.reduce((acc, identity) => {
|
||||
acc[identity.provider] = identity.provider_id;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
res.json({
|
||||
id: user.id,
|
||||
username: user.username,
|
||||
firstName: user.first_name,
|
||||
lastName: user.last_name,
|
||||
role: user.role,
|
||||
status: user.status,
|
||||
createdAt: user.created_at,
|
||||
preferredLanguage: user.preferred_language,
|
||||
identities,
|
||||
});
|
||||
res.json({ success: true, user });
|
||||
} catch (error) {
|
||||
logger.error('Error getting user profile:', error);
|
||||
res.status(500).json({ error: 'Внутренняя ошибка сервера' });
|
||||
console.error('Error getting user profile:', error);
|
||||
res.status(500).json({ success: false, message: 'Internal server error' });
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
// Обновить профиль текущего пользователя
|
||||
/*
|
||||
router.put('/profile', requireAuth, async (req, res) => {
|
||||
try {
|
||||
const userId = req.session.userId;
|
||||
const profileData = req.body;
|
||||
const updatedUser = await userService.updateUserProfile(userId, profileData);
|
||||
res.json({ success: true, user: updatedUser, message: 'Profile updated successfully' });
|
||||
} catch (error) {
|
||||
console.error('Error updating user profile:', error);
|
||||
// Можно добавить более специфичную обработку ошибок, например, если данные невалидны
|
||||
res.status(500).json({ success: false, message: 'Internal server error' });
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
// GET /api/users - Получить список всех пользователей (пример, может требовать прав администратора)
|
||||
// В текущей реализации этот маршрут не используется и закомментирован
|
||||
/*
|
||||
router.get('/', async (req, res) => {
|
||||
try {
|
||||
// const users = await userService.getAllUsers(); // Удаляем
|
||||
await userService.getAllUsers(); // Просто вызываем, если нужно действие, но результат не используется
|
||||
// res.json({ success: true, users });
|
||||
res.json({ success: true, message: "Users retrieved" }); // Пример ответа без данных
|
||||
} catch (error) {
|
||||
console.error('Error getting all users:', error);
|
||||
res.status(500).json({ success: false, message: 'Internal server error' });
|
||||
}
|
||||
});
|
||||
*/
|
||||
|
||||
module.exports = router;
|
||||
|
||||
Reference in New Issue
Block a user