Merge branch 'master' of ssh://85.143.175.152:222/bro-students/multy-stub
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "multi-stub",
|
"name": "multi-stub",
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "multi-stub",
|
"name": "multi-stub",
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"axios": "^1.7.9",
|
"axios": "^1.7.9",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "multi-stub",
|
"name": "multi-stub",
|
||||||
"version": "1.0.1",
|
"version": "1.1.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -2,5 +2,6 @@ const router = require('express').Router();
|
|||||||
|
|
||||||
router.use('/performer', require('./dashboard-performer'))
|
router.use('/performer', require('./dashboard-performer'))
|
||||||
router.use('/auth', require('./auth'))
|
router.use('/auth', require('./auth'))
|
||||||
|
router.use('/landing', require('./landing'))
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
29
server/routers/freetracker/landing/index.js
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
const Router = require('express').Router;
|
||||||
|
|
||||||
|
const router = Router()
|
||||||
|
|
||||||
|
const values = {
|
||||||
|
'blocks': 'success',
|
||||||
|
'application': 'success'
|
||||||
|
}
|
||||||
|
|
||||||
|
const timer = (_req, _res, next) => {
|
||||||
|
setTimeout(() => next(), 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
router.use(timer)
|
||||||
|
|
||||||
|
router.get(
|
||||||
|
'/blocks',
|
||||||
|
(req, res) =>
|
||||||
|
res.send(require(`./json/blocks-${values['blocks']}.json`))
|
||||||
|
)
|
||||||
|
|
||||||
|
router.post(
|
||||||
|
'/application',
|
||||||
|
(req, res) => {
|
||||||
|
res.send(require(`./json/application-${values['application']}.json`))
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
module.exports = router
|
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"success": false,
|
||||||
|
"body": { },
|
||||||
|
"errors": [
|
||||||
|
"Что-то пошло не так"
|
||||||
|
]
|
||||||
|
}
|
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"body": { }
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"success": false,
|
||||||
|
"body": {
|
||||||
|
"blocks": []
|
||||||
|
},
|
||||||
|
"errors": [
|
||||||
|
"Что-то пошло не так"
|
||||||
|
]
|
||||||
|
}
|
22
server/routers/freetracker/landing/json/blocks-success.json
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"body": {
|
||||||
|
"blocks": [
|
||||||
|
{
|
||||||
|
"titleKey":"block1.title",
|
||||||
|
"textKey":"block1.subtitle",
|
||||||
|
"imageName":"truck1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"titleKey":"block2.title",
|
||||||
|
"textKey":"block2.subtitle",
|
||||||
|
"imageName":"truck2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"titleKey":"block3.title",
|
||||||
|
"textKey":"block3.subtitle",
|
||||||
|
"imageName":"truck3"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
@ -4,6 +4,10 @@ router.get("/game-page", (request, response) => {
|
|||||||
response.send(require("./json/gamepage/success.json"));
|
response.send(require("./json/gamepage/success.json"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.get("/update-like", (request, response) => {
|
||||||
|
response.send(require("./json/gamepage/success.json"));
|
||||||
|
});
|
||||||
|
|
||||||
router.get("/categories", (request, response) => {
|
router.get("/categories", (request, response) => {
|
||||||
response.send(require("./json/categories/success.json"));
|
response.send(require("./json/categories/success.json"));
|
||||||
});
|
});
|
||||||
@ -20,4 +24,69 @@ router.get("/all-games", (request, response) => {
|
|||||||
response.send(require("./json/home-page-data/all-games.json"));
|
response.send(require("./json/home-page-data/all-games.json"));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// // Маршрут для обновления лайков
|
||||||
|
// router.post("/update-like", (request, response) => {
|
||||||
|
// const { username, likes } = request.body;
|
||||||
|
|
||||||
|
// // Эмулируем успешное обновление лайков
|
||||||
|
// console.log(`Лайки для пользователя ${username} обновлены до ${likes}`);
|
||||||
|
|
||||||
|
// response.status(200).json({
|
||||||
|
// success: true,
|
||||||
|
// message: `Лайки для пользователя ${username} обновлены до ${likes}`,
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
|
|
||||||
|
const fs = require("fs").promises;
|
||||||
|
const path = require("path");
|
||||||
|
|
||||||
|
// Path to JSON file
|
||||||
|
const commentsFilePath = path.join(__dirname, "./json/gamepage/success.json");
|
||||||
|
|
||||||
|
// Read JSON file
|
||||||
|
async function readComments() {
|
||||||
|
const data = await fs.readFile(commentsFilePath, "utf-8");
|
||||||
|
const parsedData = JSON.parse(data);
|
||||||
|
console.log("Прочитанные данные:", parsedData); // Логируем полученные данные
|
||||||
|
return parsedData;
|
||||||
|
}
|
||||||
|
// Write to JSON file
|
||||||
|
async function writeComments(data) {
|
||||||
|
await fs.writeFile(commentsFilePath, JSON.stringify(data, null, 2), "utf-8");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update likes route
|
||||||
|
router.post("/update-like", async (req, res) => {
|
||||||
|
const { username, likes } = req.body;
|
||||||
|
|
||||||
|
if (!username || likes === undefined) {
|
||||||
|
return res.status(400).json({ success: false, message: "Invalid input" });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const data = await readComments();
|
||||||
|
const comment = data.data.comments.find((c) => c.username === username);
|
||||||
|
|
||||||
|
if (comment) {
|
||||||
|
comment.likes = likes;
|
||||||
|
await writeComments(data); // Сохраняем обновленные данные в файл
|
||||||
|
|
||||||
|
// Возвращаем актуализированные данные
|
||||||
|
res.status(200).json({
|
||||||
|
success: true,
|
||||||
|
message: "Likes updated successfully",
|
||||||
|
data: data.data, // Возвращаем актуализированные данные
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
res.status(404).json({ success: false, message: "Comment not found" });
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error updating likes:", error);
|
||||||
|
res.status(500).json({ success: false, message: "Server error" });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
@ -8,14 +8,18 @@
|
|||||||
"price": 259,
|
"price": 259,
|
||||||
"old_price": 500,
|
"old_price": 500,
|
||||||
"image": "sales_game1",
|
"image": "sales_game1",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
"title": "Red Solstice 2 Survivors",
|
"title": "Red Solstice 2 Survivors",
|
||||||
"price": 561,
|
"price": 561,
|
||||||
"image": "sales_game2",
|
"image": "sales_game2",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
@ -23,7 +27,9 @@
|
|||||||
"price": 820,
|
"price": 820,
|
||||||
"old_price": 1100,
|
"old_price": 1100,
|
||||||
"image": "new_game2",
|
"image": "new_game2",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -31,7 +37,9 @@
|
|||||||
"price": 990,
|
"price": 990,
|
||||||
"old_price": 1200,
|
"old_price": 1200,
|
||||||
"image": "leaders_game4",
|
"image": "leaders_game4",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
@ -39,7 +47,9 @@
|
|||||||
"price": 1200,
|
"price": 1200,
|
||||||
"old_price": 2500,
|
"old_price": 2500,
|
||||||
"image": "leaders_game5",
|
"image": "leaders_game5",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
@ -47,31 +57,39 @@
|
|||||||
"price": 600,
|
"price": 600,
|
||||||
"old_price": 890,
|
"old_price": 890,
|
||||||
"image": "leaders_game6",
|
"image": "leaders_game6",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"games2": [
|
"games2": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 7,
|
||||||
"title": "Alpha League",
|
"title": "Alpha League",
|
||||||
"price": 299,
|
"price": 299,
|
||||||
"image": "new_game1",
|
"image": "new_game1",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 8,
|
||||||
"title": "Sons Of The Forests",
|
"title": "Sons Of The Forests",
|
||||||
"price": 820,
|
"price": 820,
|
||||||
"old_price": 1100,
|
"old_price": 1100,
|
||||||
"image": "new_game2",
|
"image": "new_game2",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 9,
|
||||||
"title": "Pacific Drives",
|
"title": "Pacific Drives",
|
||||||
"price": 1799,
|
"price": 1799,
|
||||||
"image": "new_game3",
|
"image": "new_game3",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -79,7 +97,9 @@
|
|||||||
"price": 990,
|
"price": 990,
|
||||||
"old_price": 1200,
|
"old_price": 1200,
|
||||||
"image": "leaders_game4",
|
"image": "leaders_game4",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
@ -87,7 +107,9 @@
|
|||||||
"price": 1200,
|
"price": 1200,
|
||||||
"old_price": 2500,
|
"old_price": 2500,
|
||||||
"image": "leaders_game5",
|
"image": "leaders_game5",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
@ -95,31 +117,39 @@
|
|||||||
"price": 600,
|
"price": 600,
|
||||||
"old_price": 890,
|
"old_price": 890,
|
||||||
"image": "leaders_game6",
|
"image": "leaders_game6",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"games3": [
|
"games3": [
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 10,
|
||||||
"title": "Elden Ring",
|
"title": "Elden Ring",
|
||||||
"price": 3295,
|
"price": 3295,
|
||||||
"old_price": 3599,
|
"old_price": 3599,
|
||||||
"image": "leaders_game2",
|
"image": "leaders_game2",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 11,
|
||||||
"title": "Counter-Strike 2",
|
"title": "Counter-Strike 2",
|
||||||
"price": 479,
|
"price": 479,
|
||||||
"image": "leaders_game1",
|
"image": "leaders_game1",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 12,
|
||||||
"title": "PUBG: BATTLEGROUNDS",
|
"title": "PUBG: BATTLEGROUNDS",
|
||||||
"price": 199,
|
"price": 199,
|
||||||
"image": "leaders_game3",
|
"image": "leaders_game3",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 4,
|
"id": 4,
|
||||||
@ -127,7 +157,9 @@
|
|||||||
"price": 990,
|
"price": 990,
|
||||||
"old_price": 1200,
|
"old_price": 1200,
|
||||||
"image": "leaders_game4",
|
"image": "leaders_game4",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 5,
|
"id": 5,
|
||||||
@ -135,7 +167,9 @@
|
|||||||
"price": 1200,
|
"price": 1200,
|
||||||
"old_price": 2500,
|
"old_price": 2500,
|
||||||
"image": "leaders_game5",
|
"image": "leaders_game5",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 6,
|
"id": 6,
|
||||||
@ -143,7 +177,9 @@
|
|||||||
"price": 600,
|
"price": 600,
|
||||||
"old_price": 890,
|
"old_price": 890,
|
||||||
"image": "leaders_game6",
|
"image": "leaders_game6",
|
||||||
"os": "windows"
|
"os": "windows",
|
||||||
|
"fav1": "star1",
|
||||||
|
"fav2": "star2"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -4,21 +4,32 @@
|
|||||||
"comments": [
|
"comments": [
|
||||||
{
|
{
|
||||||
"username": "Пользователь1",
|
"username": "Пользователь1",
|
||||||
"text": "Текст комментария 1"
|
"text": "Текст комментария 1",
|
||||||
|
"likes": 9,
|
||||||
|
"rating": 8,
|
||||||
|
"date": "2025-03-01T10:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"username": "Пользователь2",
|
"username": "Пользователь2",
|
||||||
"text": "Текст комментария 2"
|
"text": "Текст комментария 2",
|
||||||
|
"likes": 7,
|
||||||
|
"rating": 7,
|
||||||
|
"date": "2025-01-01T10:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"username": "Пользователь3",
|
"username": "Пользователь3",
|
||||||
"text": "Текст комментария 3"
|
"text": "Текст комментария 3",
|
||||||
|
"likes": 5,
|
||||||
|
"rating": 3,
|
||||||
|
"date": "2025-02-01T10:00:00Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"username": "Пользователь4",
|
"username": "Пользователь4",
|
||||||
"text": "Текст комментария 4"
|
"text": "Текст комментария 4",
|
||||||
|
"likes": 15,
|
||||||
|
"rating": 2,
|
||||||
|
"date": "2025-12-01T10:00:00Z"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -27,7 +27,7 @@ router.put('/new', (req, res) => {
|
|||||||
return res.status(500).send('No data to update'); // Internal server error
|
return res.status(500).send('No data to update'); // Internal server error
|
||||||
}
|
}
|
||||||
|
|
||||||
indexedUpdatedData = { id: data.length, ...updatedData }; // Add the new dictionary to the array
|
const indexedUpdatedData = { id: data.length, ...updatedData }; // Add the new dictionary to the array
|
||||||
|
|
||||||
data.push(indexedUpdatedData); // Add the new dictionary to the array
|
data.push(indexedUpdatedData); // Add the new dictionary to the array
|
||||||
|
|
||||||
|
BIN
server/routers/old/bushou/images.tar
Normal file
Before Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 578 B |
Before Width: | Height: | Size: 481 B |
Before Width: | Height: | Size: 368 B |
Before Width: | Height: | Size: 593 B |
Before Width: | Height: | Size: 539 B |
Before Width: | Height: | Size: 414 B |
Before Width: | Height: | Size: 414 B |
Before Width: | Height: | Size: 739 B |
Before Width: | Height: | Size: 686 B |
Before Width: | Height: | Size: 750 B |
Before Width: | Height: | Size: 687 B |
Before Width: | Height: | Size: 706 B |
Before Width: | Height: | Size: 776 B |
Before Width: | Height: | Size: 628 B |
Before Width: | Height: | Size: 742 B |
Before Width: | Height: | Size: 853 B |
Before Width: | Height: | Size: 911 B |
Before Width: | Height: | Size: 601 B |
Before Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 442 B |
Before Width: | Height: | Size: 858 B |
Before Width: | Height: | Size: 718 B |
Before Width: | Height: | Size: 1015 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 811 B |
Before Width: | Height: | Size: 872 B |
Before Width: | Height: | Size: 659 B |
Before Width: | Height: | Size: 767 B |
Before Width: | Height: | Size: 719 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 812 B |
Before Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 955 B |
Before Width: | Height: | Size: 908 B |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1016 B |
Before Width: | Height: | Size: 997 B |
Before Width: | Height: | Size: 856 B |
Before Width: | Height: | Size: 693 B |
Before Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 766 B |
Before Width: | Height: | Size: 952 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 843 B |
Before Width: | Height: | Size: 951 B |
Before Width: | Height: | Size: 967 B |
Before Width: | Height: | Size: 923 B |
Before Width: | Height: | Size: 725 B |
Before Width: | Height: | Size: 935 B |
Before Width: | Height: | Size: 820 B |
Before Width: | Height: | Size: 841 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1006 B |
Before Width: | Height: | Size: 949 B |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 930 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 782 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 855 B |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 809 B |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 837 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 1020 B |
Before Width: | Height: | Size: 1015 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 758 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 771 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |