This commit is contained in:
2025-10-14 11:58:10 +03:00
parent f65fd175ca
commit 9f72d5885e

View File

@@ -19,10 +19,26 @@ router.use(timer());
const loadMockData = (filename) => {
try {
const filePath = path.join(__dirname, '..', 'mocks', filename);
// Проверяем существование файла
if (!fs.existsSync(filePath)) {
console.error(`Файл ${filename} не найден по пути: ${filePath}`);
return {};
}
const data = fs.readFileSync(filePath, 'utf8');
return JSON.parse(data);
// Проверяем, что файл не пустой
if (!data || data.trim() === '') {
console.error(`Файл ${filename} пустой`);
return {};
}
const parsedData = JSON.parse(data);
console.log(`Успешно загружен файл ${filename}`);
return parsedData;
} catch (error) {
console.error(`Ошибка загрузки ${filename}:`, error);
console.error(`Ошибка загрузки ${filename}:`, error.message);
return {};
}
};
@@ -44,8 +60,22 @@ const generateDate = (daysAgo) => new Date(Date.now() - 86400000 * daysAgo).toIS
// Функция для замены плейсхолдеров в данных
const processMockData = (data) => {
// Проверяем, что данные существуют
if (data === undefined || data === null) {
console.warn('processMockData: получены undefined или null данные');
return data;
}
const timestamp = generateTimestamp();
const processedData = JSON.stringify(data)
const jsonString = JSON.stringify(data);
// Проверяем, что JSON.stringify вернул валидную строку
if (jsonString === undefined || jsonString === null) {
console.warn('processMockData: JSON.stringify вернул undefined или null');
return data;
}
const processedData = jsonString
.replace(/{{timestamp}}/g, timestamp)
.replace(/{{date-(\d+)-days?}}/g, (match, days) => generateDate(parseInt(days)))
.replace(/{{date-1-day}}/g, generateDate(1))
@@ -67,7 +97,12 @@ const processMockData = (data) => {
.replace(/{{date-30-days}}/g, generateDate(30))
.replace(/{{date-35-days}}/g, generateDate(35));
return JSON.parse(processedData);
try {
return JSON.parse(processedData);
} catch (error) {
console.error('processMockData: ошибка при парсинге JSON:', error);
return data; // Возвращаем исходные данные в случае ошибки
}
};
// Auth endpoints
@@ -77,7 +112,7 @@ router.post('/auth/login', (req, res) => {
if (!email || !password) {
return res.status(400).json({
error: 'Validation failed',
message: authMocks.errorMessages?.validationFailed || 'Email и пароль обязательны'
message: authMocks?.errorMessages?.validationFailed || 'Email и пароль обязательны'
});
}
@@ -85,7 +120,16 @@ router.post('/auth/login', (req, res) => {
if (password === 'wrong') {
return res.status(401).json({
error: 'Unauthorized',
message: authMocks.errorMessages?.invalidCredentials || 'Неверный email или пароль'
message: authMocks?.errorMessages?.invalidCredentials || 'Неверный email или пароль'
});
}
// Проверяем, что данные загружены
if (!authMocks?.mockAuthResponse) {
console.error('authMocks.mockAuthResponse не загружен');
return res.status(500).json({
error: 'Internal Server Error',
message: 'Ошибка загрузки данных аутентификации'
});
}