фикс
This commit is contained in:
parent
41a6664c32
commit
c2791255ee
@ -324,11 +324,45 @@ const getConversationMessages = async (req, res) => {
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @desc Получить диалог по ID
|
||||
* @route GET /api/admin/conversations/:id
|
||||
* @access Admin
|
||||
*/
|
||||
const getConversationById = async (req, res) => {
|
||||
try {
|
||||
const conversationId = req.params.id;
|
||||
console.log(`[ADMIN] Запрос диалога с ID: ${conversationId}`);
|
||||
|
||||
if (!mongoose.Types.ObjectId.isValid(conversationId)) {
|
||||
console.log(`[ADMIN] Недопустимый формат ID диалога: ${conversationId}`);
|
||||
return res.status(400).json({ message: 'Недопустимый формат ID диалога' });
|
||||
}
|
||||
|
||||
// Получаем диалог с данными участников
|
||||
const conversation = await Conversation.findById(conversationId)
|
||||
.populate('participants', 'name email photos')
|
||||
.populate('lastMessage');
|
||||
|
||||
if (!conversation) {
|
||||
console.log(`[ADMIN] Диалог с ID ${conversationId} не найден в базе данных`);
|
||||
return res.status(404).json({ message: 'Диалог не найден' });
|
||||
}
|
||||
|
||||
console.log(`[ADMIN] Диалог найден, возвращаем данные`);
|
||||
res.json(conversation);
|
||||
} catch (error) {
|
||||
console.error('[ADMIN] Ошибка при получении диалога:', error);
|
||||
res.status(500).json({ message: 'Ошибка сервера при получении диалога' });
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
getAllUsers,
|
||||
getUserDetails,
|
||||
toggleUserActive,
|
||||
getAppStatistics,
|
||||
getAllConversations,
|
||||
getConversationById,
|
||||
getConversationMessages
|
||||
};
|
@ -29,6 +29,7 @@ router.put('/reports/:id', updateReportStatus);
|
||||
|
||||
// Маршруты для просмотра диалогов и сообщений
|
||||
router.get('/conversations', adminController.getAllConversations);
|
||||
router.get('/conversations/:id', adminController.getConversationById); // Новый маршрут для получения диалога по ID
|
||||
router.get('/conversations/:id/messages', adminController.getConversationMessages);
|
||||
|
||||
module.exports = router;
|
@ -151,30 +151,20 @@ export default {
|
||||
error.value = null;
|
||||
|
||||
try {
|
||||
const token = localStorage.getItem('userToken'); // Исправлено с 'token' на 'userToken'
|
||||
const token = localStorage.getItem('userToken');
|
||||
|
||||
// Здесь мы используем маршрут для получения данных о диалоге
|
||||
// Это должен быть запрос к API, который возвращает данные о конкретном диалоге
|
||||
// На бэкенде такого маршрута может не быть, поэтому используем маршрут для получения списка диалогов
|
||||
// и фильтруем результаты на клиенте
|
||||
// Прямой запрос к диалогу по его ID
|
||||
const response = await axios.get(
|
||||
`/api/admin/conversations`,
|
||||
`/api/admin/conversations/${props.id}`,
|
||||
{
|
||||
params: { userId: props.id, limit: 1 }, // Временное решение, по API нужно реализовать маршрут GET /api/admin/conversations/:id
|
||||
headers: {
|
||||
Authorization: `Bearer ${token}`
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (response.data.conversations && response.data.conversations.length > 0) {
|
||||
conversation.value = response.data.conversations.find(c => c._id === props.id);
|
||||
|
||||
if (!conversation.value) {
|
||||
// Если не нашли диалог по ID, возьмем первый из ответа (временное решение)
|
||||
conversation.value = response.data.conversations[0];
|
||||
}
|
||||
|
||||
if (response.data) {
|
||||
conversation.value = response.data;
|
||||
// Загружаем сообщения для диалога
|
||||
loadMessages();
|
||||
} else {
|
||||
@ -182,7 +172,11 @@ export default {
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Ошибка при загрузке данных диалога:', err);
|
||||
error.value = 'Ошибка при загрузке информации о диалоге. Пожалуйста, попробуйте позже.';
|
||||
if (err.response && err.response.status === 404) {
|
||||
error.value = 'Диалог не найден. Проверьте ID диалога.';
|
||||
} else {
|
||||
error.value = 'Ошибка при загрузке информации о диалоге. Пожалуйста, попробуйте позже.';
|
||||
}
|
||||
} finally {
|
||||
loading.value = false;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user