Описание изменений
This commit is contained in:
@@ -1,59 +1,47 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const { linkIdentity, getUserIdentities } = require('../utils/identity-linker');
|
||||
const db = require('../db');
|
||||
const { requireAuth } = require('../middleware/auth');
|
||||
const authService = require('../services/auth-service');
|
||||
const logger = require('../utils/logger');
|
||||
|
||||
// Получение связанных идентификаторов пользователя
|
||||
// Получение всех идентификаторов пользователя
|
||||
router.get('/', requireAuth, async (req, res) => {
|
||||
try {
|
||||
// Получаем ID пользователя по Ethereum-адресу
|
||||
const result = await db.query('SELECT id FROM users WHERE address = $1', [
|
||||
req.session.address,
|
||||
]);
|
||||
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({ error: 'User not found' });
|
||||
}
|
||||
|
||||
const userId = result.rows[0].id;
|
||||
|
||||
// Получаем все идентификаторы пользователя
|
||||
const identities = await getUserIdentities(userId);
|
||||
|
||||
res.json({ identities });
|
||||
const userId = req.session.userId;
|
||||
const identities = await authService.getUserIdentities(userId);
|
||||
res.json({ success: true, identities });
|
||||
} catch (error) {
|
||||
console.error('Error getting user identities:', error);
|
||||
logger.error('Error getting identities:', error);
|
||||
res.status(500).json({ error: 'Internal server error' });
|
||||
}
|
||||
});
|
||||
|
||||
// Удаление связанного идентификатора
|
||||
router.delete('/:type/:value', requireAuth, async (req, res) => {
|
||||
// Связывание нового идентификатора
|
||||
router.post('/link', requireAuth, async (req, res) => {
|
||||
try {
|
||||
const { type, value } = req.params;
|
||||
const { type, value } = req.body;
|
||||
const userId = req.session.userId;
|
||||
|
||||
// Получаем ID пользователя по Ethereum-адресу
|
||||
const result = await db.query('SELECT id FROM users WHERE address = $1', [
|
||||
req.session.address,
|
||||
]);
|
||||
await authService.linkIdentity(userId, type, value);
|
||||
|
||||
if (result.rows.length === 0) {
|
||||
return res.status(404).json({ error: 'User not found' });
|
||||
// Обновляем сессию
|
||||
if (type === 'wallet') {
|
||||
req.session.address = value;
|
||||
req.session.isAdmin = await authService.checkTokensAndUpdateRole(value);
|
||||
} else if (type === 'telegram') {
|
||||
req.session.telegramId = value;
|
||||
} else if (type === 'email') {
|
||||
req.session.email = value;
|
||||
}
|
||||
|
||||
const userId = result.rows[0].id;
|
||||
|
||||
// Удаляем идентификатор
|
||||
await db.query(
|
||||
'DELETE FROM user_identities WHERE user_id = $1 AND identity_type = $2 AND identity_value = $3',
|
||||
[userId, type, value]
|
||||
);
|
||||
|
||||
res.json({ success: true });
|
||||
res.json({
|
||||
success: true,
|
||||
message: 'Identity linked successfully',
|
||||
isAdmin: req.session.isAdmin
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error deleting user identity:', error);
|
||||
res.status(500).json({ error: 'Internal server error' });
|
||||
logger.error('Error linking identity:', error);
|
||||
res.status(500).json({ error: error.message || 'Internal server error' });
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user