nakama/backend/routes/bot.js

93 lines
2.9 KiB
JavaScript
Raw Normal View History

2025-11-03 22:17:25 +00:00
const express = require('express');
const router = express.Router();
const { sendPhotoToUser, sendPhotosToUser } = require('../bot');
const { authenticate } = require('../middleware/auth');
// Endpoint для отправки одного фото в ЛС
router.post('/send-photo', authenticate, async (req, res) => {
try {
const { userId, photoUrl, caption } = req.body;
if (!userId || !photoUrl) {
return res.status(400).json({ error: 'userId и photoUrl обязательны' });
}
const result = await sendPhotoToUser(userId, photoUrl, caption);
res.json({
success: true,
message: 'Изображение отправлено в ваш Telegram',
result
});
} catch (error) {
console.error('Ошибка отправки:', error);
res.status(500).json({
error: 'Ошибка отправки изображения',
details: error.message
});
}
});
// Endpoint для отправки нескольких фото группой
router.post('/send-photos', authenticate, async (req, res) => {
try {
const { userId, photos } = req.body;
if (!userId || !photos || !Array.isArray(photos) || photos.length === 0) {
return res.status(400).json({ error: 'userId и массив photos обязательны' });
}
if (photos.length > 50) {
return res.status(400).json({ error: 'Максимум 50 фото за раз' });
}
const results = await sendPhotosToUser(userId, photos);
res.json({
success: true,
message: `${photos.length} изображений отправлено в ваш Telegram`,
results
});
} catch (error) {
console.error('Ошибка отправки фото:', error);
res.status(500).json({
error: 'Ошибка отправки изображений',
details: error.message
});
}
});
2025-12-04 17:44:05 +00:00
// Отправить сообщение всем пользователям (только админы)
router.post('/broadcast', authenticate, async (req, res) => {
try {
// Проверка прав админа
if (req.user.role !== 'admin') {
return res.status(403).json({ error: 'Требуются права администратора' });
}
const { message } = req.body;
if (!message || !message.trim()) {
return res.status(400).json({ error: 'Сообщение обязательно' });
}
const { sendMessageToAllUsers } = require('../bots/mainBot');
const result = await sendMessageToAllUsers(message);
res.json({
success: true,
message: `Сообщение отправлено ${result.sent} пользователям`,
result
});
} catch (error) {
console.error('Ошибка рассылки:', error);
res.status(500).json({
error: 'Ошибка отправки сообщений',
details: error.message
});
}
});
2025-11-03 22:17:25 +00:00
module.exports = router;