Compare commits
9 Commits
esc-stubs
...
3c89d8b9a8
| Author | SHA1 | Date | |
|---|---|---|---|
| 3c89d8b9a8 | |||
| bdc8d9a8e0 | |||
| 8814c2a64b | |||
| 298a82e0ae | |||
| a86eb0d4ef | |||
| 335179ad26 | |||
| a1d331b5b4 | |||
| b36ee36e3a | |||
| 6e0934e585 |
@@ -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;
|
||||||
|
|||||||
3
server/routers/kazan-explore/const.js
Normal file
3
server/routers/kazan-explore/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,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' });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
27
server/routers/kazan-explore/model/results.js
Normal file
27
server/routers/kazan-explore/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)
|
||||||
Reference in New Issue
Block a user