Compare commits

...

9 Commits

4 changed files with 309 additions and 216 deletions

View File

@@ -1,16 +1,40 @@
const router = require('express').Router() const router = require('express').Router()
const {MasterModel} = require('./model/master') const {MasterModel} = require('./model/master')
const mongoose = require("mongoose") const mongoose = require("mongoose")
const {OrderModel} = require("./model/order")
router.get('/masters', async (req, res,next) => { router.get("/masters", async (req, res, next) => {
try { try {
const master = await MasterModel.find({}) const masters = await MasterModel.find({});
res.status(200).send({success: true, body: master}) const orders = await OrderModel.find({});
const mastersWithOrders = masters.map((master) => {
const masterOrders = orders.filter((order) => {
return (
order?.master && order.master.toString() === master._id.toString()
);
});
const schedule = masterOrders.map((order) => ({
id: order._id,
startWashTime: order.startWashTime,
endWashTime: order.endWashTime,
}));
return {
id: master._id,
name: master.name,
schedule: schedule,
phone: master.phone,
};
});
res.status(200).send({ success: true, body: mastersWithOrders });
} catch (error) { } catch (error) {
next(error) next(error);
} }
}) });
router.delete('/masters/:id', async (req, res,next) => { router.delete('/masters/:id', async (req, res,next) => {
const { id } = req.params; const { id } = req.params;

View File

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

View File

@@ -1,15 +1,54 @@
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');
const translatedData = data[lang] || data['ru']; // Выбираем перевод по языку или дефолтный const translatedData = data[lang] || data['ru'];
response.send(translatedData); // Отправляем перевод клиенту response.send(translatedData);
} catch (error) { } catch (error) {
response.status(500).send({ message: 'Internal server error' }); // Ошибка в случае проблем с JSON response.status(500).send({ message: 'Internal server error' });
} }
}); });
@@ -25,13 +64,13 @@ router.get('/getNews', (request, response) => {
// Sport page // Sport page
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');
const translatedData = data[lang] || data['ru']; // Берём перевод или дефолтный const translatedData = data[lang] || data['ru'];
response.send(translatedData); response.send(translatedData);
} catch (error) { } catch (error) {
response.status(404).send({ message: 'Language not found' }); // Обработка ошибки response.status(404).send({ message: 'Language not found' });
} }
}); });

View 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)