Merge pull request 'kazan-explore multy stub changes' (#66) from kazan-explore into master
Reviewed-on: #66
This commit is contained in:
		
						commit
						a86eb0d4ef
					
				
							
								
								
									
										3
									
								
								server/routers/kazan-explore/api/const.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								server/routers/kazan-explore/api/const.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					exports.KAZAN_EXPLORE_RESULTS_MODEL_NAME = 'KAZAN_EXPLORE_RESULTS'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					exports.TOKEN_KEY = "KAZAN_EXPLORE_TOP_SECRET_TOKEN_KEY"
 | 
				
			||||||
@ -1,11 +1,50 @@
 | 
				
			|||||||
const router = require('express').Router();
 | 
					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
 | 
					// First page
 | 
				
			||||||
router.get('/getInfoAboutKazan', (request, response) => {
 | 
					router.get('/getInfoAboutKazan', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru'; // Получаем язык из параметров запроса
 | 
					    const lang = request.query.lang || 'ru'; // Получаем язык из параметров запроса
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require('./json/first/info-about-kazan/success.json'); // Загружаем весь JSON
 | 
					        const data = require('../json/first/info-about-kazan/success.json'); // Загружаем весь JSON
 | 
				
			||||||
        const translatedData = data[lang] || data['ru']; // Выбираем перевод по языку или дефолтный
 | 
					        const translatedData = data[lang] || data['ru']; // Выбираем перевод по языку или дефолтный
 | 
				
			||||||
        response.send(translatedData); // Отправляем перевод клиенту
 | 
					        response.send(translatedData); // Отправляем перевод клиенту
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -16,7 +55,7 @@ router.get('/getInfoAboutKazan', (request, response) => {
 | 
				
			|||||||
router.get('/getNews', (request, response) => {
 | 
					router.get('/getNews', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/first/news/${lang}/success.json`);
 | 
					        const data = require(`../json/first/news/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -27,7 +66,7 @@ router.get('/getNews', (request, response) => {
 | 
				
			|||||||
router.get('/getFirstText', (request, response) => {
 | 
					router.get('/getFirstText', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru'; // Получаем язык из параметров
 | 
					    const lang = request.query.lang || 'ru'; // Получаем язык из параметров
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require('./json/sport/first-text/success.json'); // Загружаем JSON
 | 
					        const data = require('../json/sport/first-text/success.json'); // Загружаем JSON
 | 
				
			||||||
        const translatedData = data[lang] || data['ru']; // Берём перевод или дефолтный
 | 
					        const translatedData = data[lang] || data['ru']; // Берём перевод или дефолтный
 | 
				
			||||||
        response.send(translatedData);
 | 
					        response.send(translatedData);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -38,7 +77,7 @@ router.get('/getFirstText', (request, response) => {
 | 
				
			|||||||
router.get('/getSecondText', (request, response) => {
 | 
					router.get('/getSecondText', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require('./json/sport/second-text/success.json');
 | 
					        const data = require('../json/sport/second-text/success.json');
 | 
				
			||||||
        const translatedData = data[lang] || data['ru'];
 | 
					        const translatedData = data[lang] || data['ru'];
 | 
				
			||||||
        response.send(translatedData);
 | 
					        response.send(translatedData);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -49,7 +88,7 @@ router.get('/getSecondText', (request, response) => {
 | 
				
			|||||||
router.get('/getSportData', (request, response) => {
 | 
					router.get('/getSportData', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/sport/sport-list/${lang}/success.json`);
 | 
					        const data = require(`../json/sport/sport-list/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -59,7 +98,7 @@ router.get('/getSportData', (request, response) => {
 | 
				
			|||||||
router.get('/getSportQuiz', (request, response) => {
 | 
					router.get('/getSportQuiz', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/sport/quiz/${lang}/success.json`);
 | 
					        const data = require(`../json/sport/quiz/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -70,7 +109,7 @@ router.get('/getSportQuiz', (request, response) => {
 | 
				
			|||||||
router.get('/getPlacesData', (request, response) => {
 | 
					router.get('/getPlacesData', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/places/${lang}/success.json`);
 | 
					        const data = require(`../json/places/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -81,7 +120,7 @@ router.get('/getPlacesData', (request, response) => {
 | 
				
			|||||||
router.get('/getInfoAboutTransportPage', (request, response) => {
 | 
					router.get('/getInfoAboutTransportPage', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require('./json/transport/info-about-page/success.json');
 | 
					        const data = require('../json/transport/info-about-page/success.json');
 | 
				
			||||||
        const translatedData = data[lang] || data['ru'];
 | 
					        const translatedData = data[lang] || data['ru'];
 | 
				
			||||||
        response.send(translatedData);
 | 
					        response.send(translatedData);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -90,21 +129,21 @@ router.get('/getInfoAboutTransportPage', (request, response) => {
 | 
				
			|||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
router.get('/getBus', (request, response) => {
 | 
					router.get('/getBus', (request, response) => {
 | 
				
			||||||
    response.send(require('./json/transport/bus-numbers/success.json'))
 | 
					    response.send(require('../json/transport/bus-numbers/success.json'))
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
router.get('/getTral', (request, response) => {
 | 
					router.get('/getTral', (request, response) => {
 | 
				
			||||||
    response.send(require('./json/transport/tral-numbers/success.json'))
 | 
					    response.send(require('../json/transport/tral-numbers/success.json'))
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
router.get('/getEvents', (request, response) => {
 | 
					router.get('/getEvents', (request, response) => {
 | 
				
			||||||
    response.send(require('./json/transport/events-calendar/success.json'))
 | 
					    response.send(require('../json/transport/events-calendar/success.json'))
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
router.get('/getTripSchedule', (request, response) => {
 | 
					router.get('/getTripSchedule', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/transport/trip-schedule/${lang}/success.json`);
 | 
					        const data = require(`../json/transport/trip-schedule/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -115,7 +154,7 @@ router.get('/getTripSchedule', (request, response) => {
 | 
				
			|||||||
router.get('/getHistoryText', (request, response) => {
 | 
					router.get('/getHistoryText', (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/history/text/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -124,7 +163,7 @@ router.get('/getHistoryText', (request, response) => {
 | 
				
			|||||||
router.get('/getHistoryList', (request, response) => {
 | 
					router.get('/getHistoryList', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/history/list/${lang}/success.json`);
 | 
					        const data = require(`../json/history/list/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -135,7 +174,7 @@ router.get('/getHistoryList', (request, response) => {
 | 
				
			|||||||
router.get('/getInfoAboutEducation', (request, response) => {
 | 
					router.get('/getInfoAboutEducation', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require('./json/education/text/success.json');
 | 
					        const data = require('../json/education/text/success.json');
 | 
				
			||||||
        const translatedData = data[lang] || data['ru'];
 | 
					        const translatedData = data[lang] || data['ru'];
 | 
				
			||||||
        response.send(translatedData);
 | 
					        response.send(translatedData);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -145,7 +184,7 @@ router.get('/getInfoAboutEducation', (request, response) => {
 | 
				
			|||||||
router.get('/getEducationList', (request, response) => {
 | 
					router.get('/getEducationList', (request, response) => {
 | 
				
			||||||
    const lang = request.query.lang || 'ru';
 | 
					    const lang = request.query.lang || 'ru';
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const data = require(`./json/education/cards/${lang}/success.json`);
 | 
					        const data = require(`../json/education/cards/${lang}/success.json`);
 | 
				
			||||||
        response.send(data);
 | 
					        response.send(data);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        response.status(404).send({ message: 'Language not found' });
 | 
					        response.status(404).send({ message: 'Language not found' });
 | 
				
			||||||
@ -154,7 +193,7 @@ router.get('/getEducationList', (request, response) => {
 | 
				
			|||||||
router.get('/getInfoAboutKFU', (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/education/kfu/success.json');
 | 
					        const data = require('../json/education/kfu/success.json');
 | 
				
			||||||
        const translatedData = data[lang] || data['ru'];
 | 
					        const translatedData = data[lang] || data['ru'];
 | 
				
			||||||
        response.send(translatedData);
 | 
					        response.send(translatedData);
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
@ -168,7 +207,7 @@ router.post('/entrance', (request, response) => {
 | 
				
			|||||||
    const { email, password } = request.body.entranceData;
 | 
					    const { email, password } = request.body.entranceData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        const users = require('./json/users-information/success.json');
 | 
					        const users = require('../json/users-information/success.json');
 | 
				
			||||||
        const user = users.data.find(user => user.email === email && user.password === password);
 | 
					        const user = users.data.find(user => user.email === email && user.password === password);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (!user) {
 | 
					        if (!user) {
 | 
				
			||||||
@ -193,7 +232,7 @@ router.post('/registration', async (request, response) => {
 | 
				
			|||||||
        if (password !== confirmPassword) {
 | 
					        if (password !== confirmPassword) {
 | 
				
			||||||
            return response.status(400).send('Пароли не совпадают!');
 | 
					            return response.status(400).send('Пароли не совпадают!');
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        const users = require('./json/users-information/success.json');
 | 
					        const users = require('../json/users-information/success.json');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        const existingUser = users.data.find(user => user.email === email);
 | 
					        const existingUser = users.data.find(user => user.email === email);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										27
									
								
								server/routers/kazan-explore/api/model/results.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								server/routers/kazan-explore/api/model/results.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					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)
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user