nakama/backend/routes/statistics.js

53 lines
1.7 KiB
JavaScript
Raw Normal View History

2025-11-03 20:35:01 +00:00
const express = require('express');
const router = express.Router();
const { authenticate } = require('../middleware/auth');
const { getUserStatistics, getUserTopPosts } = require('../utils/statistics');
// Получить статистику своего профиля
router.get('/me', authenticate, async (req, res) => {
try {
const stats = await getUserStatistics(req.user._id);
if (!stats) {
return res.status(404).json({ error: 'Статистика не найдена' });
}
res.json(stats);
} catch (error) {
console.error('Ошибка получения статистики:', error);
res.status(500).json({ error: 'Ошибка сервера' });
}
});
// Получить статистику другого пользователя
router.get('/user/:id', authenticate, async (req, res) => {
try {
const stats = await getUserStatistics(req.params.id);
if (!stats) {
return res.status(404).json({ error: 'Статистика не найдена' });
}
res.json(stats);
} catch (error) {
console.error('Ошибка получения статистики:', error);
res.status(500).json({ error: 'Ошибка сервера' });
}
});
// Получить топ посты
router.get('/top-posts/:userId', authenticate, async (req, res) => {
try {
const { limit = 5 } = req.query;
const topPosts = await getUserTopPosts(req.params.userId, parseInt(limit));
res.json({ topPosts });
} catch (error) {
console.error('Ошибка получения топ постов:', error);
res.status(500).json({ error: 'Ошибка сервера' });
}
});
module.exports = router;