49 lines
1.8 KiB
JavaScript
49 lines
1.8 KiB
JavaScript
const express = require('express');
|
|
const { UserModel, CharacterModel, BusinessModel, EnterpriseModel } = global.config;
|
|
const app = express();
|
|
|
|
app.use(express.static('public')); // Для выдачи HTML и статики
|
|
|
|
// Эндпоинт для получения всех данных игрока
|
|
app.get('/player/:id', async (req, res) => {
|
|
const playerId = req.params.id;
|
|
|
|
try {
|
|
console.log(playerId)
|
|
const user = await UserModel.findOne({ where: { telegram_id: req.params.id } });
|
|
const character = await CharacterModel.findOne({ where: { telegram_id: playerId } });
|
|
let business = await BusinessModel.findOne({ where: { owner: playerId.toString() } })
|
|
if(business === null){
|
|
business = await BusinessModel.findOne( {where: { owner: user.business.id} } )
|
|
}
|
|
const enterprises = await EnterpriseModel.findAll({ where: { playerId } });
|
|
|
|
if (!user || !character) {
|
|
return res.status(404).json({ error: "Игрок не найден." });
|
|
}
|
|
|
|
res.json({
|
|
user: {
|
|
username: user.username,
|
|
name: user.name,
|
|
level: user.level,
|
|
exp: user.exp,
|
|
hp: character.hp,
|
|
max_hp: character.max_hp,
|
|
money: user.money,
|
|
dirtymoney: character.dirtymoney,
|
|
},
|
|
business: business || { name: "Отсутствует", balance: 0, materials: 0, users: [] },
|
|
enterprises: enterprises || [],
|
|
});
|
|
} catch (err) {
|
|
console.error(err);
|
|
res.status(500).json({ error: 'Ошибка сервера' });
|
|
}
|
|
});
|
|
|
|
|
|
// Запуск сервера
|
|
const PORT = process.env.PORT || 3000;
|
|
app.listen(PORT, () => console.log(`Сервер запущен на порту ${PORT}`));
|