multy-stub/server/routers/kazan-explore/index.js

251 lines
8.3 KiB
JavaScript
Raw Normal View History

2025-01-24 22:39:25 +03:00
const router = require('express').Router();
const { ResultsModel } = require('./model/results')
router.get('/getQuizResults/:userId', async (request, response) => {
const { userId } = request.params;
try {
const results = await ResultsModel.findOne({ userId : userId }).exec();
if (!results) {
return response.status(404).send({ message: 'Quiz results not found' });
}
response.send(results.items);
} catch (error) {
response.status(500).send({ message: 'An error occurred while fetching quiz results' });
}
});
router.post('/addQuizResult', async (request, response) => {
const { userId, quizId, result } = request.body;
if (!userId || !quizId || !result) {
return response.status(400).send({ message: 'Invalid input data' });
}
try {
let userResults = await ResultsModel.findOne({ userId : userId }).exec();
if (!userResults) {
userResults = new ResultsModel({ userId, items: [] });
}
userResults.items.push({ quizId, result });
await userResults.save();
response.status(200).send({ message: 'Quiz result added successfully', data: userResults });
} catch (error) {
response.status(500).send({ message: 'An error occurred while adding quiz result' });
}
});
// First page
router.get('/getInfoAboutKazan', (request, response) => {
2025-01-24 23:02:25 +03:00
const lang = request.query.lang || 'ru';
2025-01-24 22:39:25 +03:00
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/first/info-about-kazan/success.json');
const translatedData = data[lang] || data['ru'];
response.send(translatedData);
2025-01-24 22:39:25 +03:00
} catch (error) {
2025-01-24 23:02:25 +03:00
response.status(500).send({ message: 'Internal server error' });
2025-01-24 22:39:25 +03:00
}
});
router.get('/getNews', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/first/news/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// Sport page
router.get('/getFirstText', (request, response) => {
2025-01-24 23:02:25 +03:00
const lang = request.query.lang || 'ru';
2025-01-24 22:39:25 +03:00
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/sport/first-text/success.json');
const translatedData = data[lang] || data['ru'];
2025-01-24 22:39:25 +03:00
response.send(translatedData);
} catch (error) {
2025-01-24 23:02:25 +03:00
response.status(404).send({ message: 'Language not found' });
2025-01-24 22:39:25 +03:00
}
});
router.get('/getSecondText', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/sport/second-text/success.json');
2025-01-24 22:39:25 +03:00
const translatedData = data[lang] || data['ru'];
response.send(translatedData);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
});
router.get('/getSportData', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/sport/sport-list/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
router.get('/getSportQuiz', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/sport/quiz/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// Places page
router.get('/getPlacesData', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/places/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// Transport page
router.get('/getInfoAboutTransportPage', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/transport/info-about-page/success.json');
2025-01-24 22:39:25 +03:00
const translatedData = data[lang] || data['ru'];
response.send(translatedData);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
router.get('/getBus', (request, response) => {
2025-01-24 23:02:25 +03:00
response.send(require('./json/transport/bus-numbers/success.json'))
2025-01-24 22:39:25 +03:00
})
router.get('/getTral', (request, response) => {
2025-01-24 23:02:25 +03:00
response.send(require('./json/transport/tral-numbers/success.json'))
2025-01-24 22:39:25 +03:00
})
router.get('/getEvents', (request, response) => {
2025-01-24 23:02:25 +03:00
response.send(require('./json/transport/events-calendar/success.json'))
2025-01-24 22:39:25 +03:00
})
router.get('/getTripSchedule', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/transport/trip-schedule/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// History page
router.get('/getHistoryText', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/history/text/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
router.get('/getHistoryList', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/history/list/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// Education page
router.get('/getInfoAboutEducation', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/education/text/success.json');
2025-01-24 22:39:25 +03:00
const translatedData = data[lang] || data['ru'];
response.send(translatedData);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
router.get('/getEducationList', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require(`./json/education/cards/${lang}/success.json`);
2025-01-24 22:39:25 +03:00
response.send(data);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
router.get('/getInfoAboutKFU', (request, response) => {
const lang = request.query.lang || 'ru';
try {
2025-01-24 23:02:25 +03:00
const data = require('./json/education/kfu/success.json');
2025-01-24 22:39:25 +03:00
const translatedData = data[lang] || data['ru'];
response.send(translatedData);
} catch (error) {
response.status(404).send({ message: 'Language not found' });
}
})
// Login
router.post('/entrance', (request, response) => {
const { email, password } = request.body.entranceData;
try {
2025-01-24 23:02:25 +03:00
const users = require('./json/users-information/success.json');
2025-01-24 22:39:25 +03:00
const user = users.data.find(user => user.email === email && user.password === password);
if (!user) {
return response.status(401).send('Неверные учетные данные');
}
const responseObject = {
email: user.email,
}
return response.json(responseObject);
} catch (error) {
console.error('Ошибка чтения файла:', error);
response.status(500).send('Внутренняя ошибка сервера');
}
})
router.post('/registration', async (request, response) => {
const { email, password, confirmPassword } = request.body.registerData;
try {
if (password !== confirmPassword) {
return response.status(400).send('Пароли не совпадают!');
}
2025-01-24 23:02:25 +03:00
const users = require('./json/users-information/success.json');
2025-01-24 22:39:25 +03:00
const existingUser = users.data.find(user => user.email === email);
if (existingUser) {
return response.status(400).send('Пользователь с такой почтой уже существует!');
}
return response.json({ email: email });
} catch (error) {
console.error('Ошибка регистрации пользователя:', error);
response.status(500).send('Внутренняя ошибка сервера');
}
});
module.exports = router;