Compare commits
1 Commits
dsf-fix-1
...
4759f6f7ee
| Author | SHA1 | Date | |
|---|---|---|---|
| 4759f6f7ee |
@@ -68,161 +68,4 @@ router.get("/auth/session", (request, response) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Проверка взаимодействия между пользователем и догситтером
|
|
||||||
router.get("/interactions/check", (req, res) => {
|
|
||||||
const { owner_id, dogsitter_id } = req.query;
|
|
||||||
|
|
||||||
const usersFilePath = path.resolve(__dirname, "./json/users/users.json");
|
|
||||||
|
|
||||||
delete require.cache[require.resolve(usersFilePath)];
|
|
||||||
const usersFile = require(usersFilePath);
|
|
||||||
|
|
||||||
const interactions = usersFile.interactions || [];
|
|
||||||
|
|
||||||
const exists = interactions.some(
|
|
||||||
(interaction) =>
|
|
||||||
interaction.owner_id === Number(owner_id) &&
|
|
||||||
interaction.dogsitter_id === Number(dogsitter_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
res.json({ exists });
|
|
||||||
});
|
|
||||||
|
|
||||||
// Добавление нового взаимодействия
|
|
||||||
router.post("/interactions", (req, res) => {
|
|
||||||
const { owner_id, dogsitter_id, interaction_type } = req.body;
|
|
||||||
|
|
||||||
if (!owner_id || !dogsitter_id || !interaction_type) {
|
|
||||||
return res.status(400).json({ error: "Missing required fields" });
|
|
||||||
}
|
|
||||||
|
|
||||||
const usersFilePath = path.resolve(__dirname, "./json/users/users.json");
|
|
||||||
|
|
||||||
delete require.cache[require.resolve(usersFilePath)];
|
|
||||||
const usersFile = require(usersFilePath);
|
|
||||||
|
|
||||||
if (!usersFile.interactions) {
|
|
||||||
usersFile.interactions = [];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Проверяем, существует ли уже такое взаимодействие
|
|
||||||
const exists = usersFile.interactions.some(
|
|
||||||
(interaction) =>
|
|
||||||
interaction.owner_id === Number(owner_id) &&
|
|
||||||
interaction.dogsitter_id === Number(dogsitter_id)
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!exists) {
|
|
||||||
usersFile.interactions.push({
|
|
||||||
owner_id: Number(owner_id),
|
|
||||||
dogsitter_id: Number(dogsitter_id),
|
|
||||||
interaction_type,
|
|
||||||
});
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
usersFilePath,
|
|
||||||
JSON.stringify(usersFile, null, 2),
|
|
||||||
"utf8"
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
`Добавлено взаимодействие: owner_id=${owner_id}, dogsitter_id=${dogsitter_id}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
res.json({ success: true });
|
|
||||||
});
|
|
||||||
|
|
||||||
router.get("/dogsitter-viewing", (req, res) => {
|
|
||||||
const { id } = req.query;
|
|
||||||
console.log(`Получен запрос для dogsitter с ID: ${id}`);
|
|
||||||
|
|
||||||
const usersFile = require("./json/users/users.json");
|
|
||||||
const users = usersFile.data; // Извлекаем массив из свойства "data"
|
|
||||||
|
|
||||||
const user = users.find((user) => user.id === Number(id));
|
|
||||||
|
|
||||||
if (user) {
|
|
||||||
res.json(user); // Возвращаем найденного пользователя
|
|
||||||
} else {
|
|
||||||
res.status(404).json({ error: "User not found" }); // Если пользователь не найден
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
const fs = require('fs');
|
|
||||||
const path = require('path');
|
|
||||||
|
|
||||||
|
|
||||||
router.post('/dogsitter-viewing/rating/:id', (req, res) => {
|
|
||||||
const { id } = req.params;
|
|
||||||
const { rating } = req.body;
|
|
||||||
|
|
||||||
if (!rating || rating < 1 || rating > 5) {
|
|
||||||
return res.status(400).json({ error: 'Некорректная оценка' });
|
|
||||||
}
|
|
||||||
|
|
||||||
const usersFilePath = path.resolve(__dirname, "./json/users/users.json");
|
|
||||||
|
|
||||||
delete require.cache[require.resolve(usersFilePath)];
|
|
||||||
const usersFile = require(usersFilePath);
|
|
||||||
const users = usersFile.data;
|
|
||||||
|
|
||||||
const userIndex = users.findIndex(user => user.id === Number(id));
|
|
||||||
if (userIndex === -1) {
|
|
||||||
return res.status(404).json({ error: 'Догситтер не найден' });
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!users[userIndex].ratings) {
|
|
||||||
users[userIndex].ratings = [];
|
|
||||||
}
|
|
||||||
users[userIndex].ratings.push(rating);
|
|
||||||
|
|
||||||
if (users[userIndex].ratings.length > 100) {
|
|
||||||
users[userIndex].ratings.shift();
|
|
||||||
}
|
|
||||||
|
|
||||||
const total = users[userIndex].ratings.reduce((sum, r) => sum + r, 0);
|
|
||||||
users[userIndex].rating = parseFloat((total / users[userIndex].ratings.length).toFixed(2));
|
|
||||||
|
|
||||||
fs.writeFileSync(usersFilePath, JSON.stringify({ data: users }, null, 2), 'utf8');
|
|
||||||
|
|
||||||
console.log(`Обновлен рейтинг догситтера ${id}: ${users[userIndex].rating}`);
|
|
||||||
|
|
||||||
res.json({ rating: users[userIndex].rating, ratings: users[userIndex].ratings });
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
router.patch('/users/:id', (req, res) => {
|
|
||||||
const { id } = req.params;
|
|
||||||
const updateData = req.body;
|
|
||||||
|
|
||||||
console.log('Полученные данные для обновления:', updateData);
|
|
||||||
|
|
||||||
|
|
||||||
const usersFilePath = path.resolve(__dirname, "./json/users/users.json");
|
|
||||||
|
|
||||||
delete require.cache[require.resolve(usersFilePath)];
|
|
||||||
const usersFile = require(usersFilePath);
|
|
||||||
const users = usersFile.data;
|
|
||||||
|
|
||||||
const userIndex = users.findIndex((user) => user.id === Number(id));
|
|
||||||
if (userIndex === -1) {
|
|
||||||
return res.status(404).json({ error: 'User not found' });
|
|
||||||
}
|
|
||||||
|
|
||||||
users[userIndex] = { ...users[userIndex], ...updateData };
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
usersFilePath,
|
|
||||||
JSON.stringify({ data: users }, null, 2),
|
|
||||||
'utf8'
|
|
||||||
);
|
|
||||||
|
|
||||||
console.log('Обновлённые данные пользователя:', users[userIndex]);
|
|
||||||
|
|
||||||
res.json(users[userIndex]);
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = router
|
module.exports = router
|
||||||
@@ -1,20 +1,13 @@
|
|||||||
{
|
[
|
||||||
"data": [
|
|
||||||
{
|
{
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"phone_number": "89999999999",
|
"phone_number": 89283244141,
|
||||||
"first_name": "Вася",
|
"first_name": "Вася",
|
||||||
"second_name": "Пупкин",
|
"second_name": "Пупкин",
|
||||||
"role": "dogsitter",
|
"role": "dogsitter",
|
||||||
"location": "Россия, республика Татарстан, Казань, Пушкина, 12",
|
"location": "Россия, республика Татарстан, Казань, улица Пушкина, 12",
|
||||||
"price": "1500",
|
"price": 1500,
|
||||||
"about_me": "Я люблю собак!",
|
"about_me": "Я люблю собак"
|
||||||
"rating": 5,
|
|
||||||
"ratings": [
|
|
||||||
5,
|
|
||||||
5
|
|
||||||
],
|
|
||||||
"tg": "jullllllie"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 2,
|
"id": 2,
|
||||||
@@ -23,18 +16,12 @@
|
|||||||
"second_name": "Пуськин",
|
"second_name": "Пуськин",
|
||||||
"role": "dogsitter",
|
"role": "dogsitter",
|
||||||
"location": "Россия, республика Татарстан, Казань, улица Абсалямова, 19",
|
"location": "Россия, республика Татарстан, Казань, улица Абсалямова, 19",
|
||||||
"price": 2000,
|
"price": 1000000,
|
||||||
"about_me": "Я не люблю собак. И вообще я котоман.",
|
"about_me": "Я не люблю собак. И вообще я котоман."
|
||||||
"rating": 4,
|
|
||||||
"ratings": [
|
|
||||||
4,
|
|
||||||
4
|
|
||||||
],
|
|
||||||
"tg": "vanya006"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": 3,
|
"id": 3,
|
||||||
"phone_number": 89559999999,
|
"phone_number": 89872855893,
|
||||||
"first_name": "Гадий",
|
"first_name": "Гадий",
|
||||||
"second_name": "Петрович",
|
"second_name": "Петрович",
|
||||||
"role": "owner"
|
"role": "owner"
|
||||||
@@ -46,24 +33,7 @@
|
|||||||
"second_name": "Максим",
|
"second_name": "Максим",
|
||||||
"role": "dogsitter",
|
"role": "dogsitter",
|
||||||
"location": "Россия, республика Татарстан, Казань, проспект Ямашева, 83",
|
"location": "Россия, республика Татарстан, Казань, проспект Ямашева, 83",
|
||||||
"price": 1750,
|
"price": 1000000,
|
||||||
"about_me": "Миллион алых роз",
|
"about_me": "Миллион алых роз"
|
||||||
"rating": 4.5,
|
|
||||||
"ratings": [
|
|
||||||
4,
|
|
||||||
5
|
|
||||||
],
|
|
||||||
"tg": "maks100500"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"interactions": [
|
|
||||||
{
|
|
||||||
"owner_id": 3,
|
|
||||||
"dogsitter_id": 4
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"owner_id": 1,
|
|
||||||
"dogsitter_id": 2
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user