Compare commits

..

No commits in common. "a86eb0d4eff9ee23a9bd1e07d1991ffbd9ee6a78" and "a1d331b5b4b1e9f5d98d7983f346aaa3d9a9486f" have entirely different histories.

3 changed files with 211 additions and 280 deletions

View File

@ -1,3 +0,0 @@
exports.KAZAN_EXPLORE_RESULTS_MODEL_NAME = 'KAZAN_EXPLORE_RESULTS'
exports.TOKEN_KEY = "KAZAN_EXPLORE_TOP_SECRET_TOKEN_KEY"

View File

@ -1,27 +0,0 @@
const { Schema, model } = require('mongoose')
const { KAZAN_EXPLORE_RESULTS_MODEL_NAME } = require('../const')
const schema = new Schema({
userId: { type: String },
items: [
{
quizId: { type: String },
result: { type: Number }
}
]
})
schema.set('toJSON', {
virtuals: true,
versionKey: false,
transform: function (doc, ret) {
delete ret._id
}
})
schema.virtual('id').get(function () {
return this._id.toHexString()
})
exports.ResultsModel = model(KAZAN_EXPLORE_RESULTS_MODEL_NAME, schema)

View File

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