Files
supermarket/experiments/magnit-detail-endpoints/test-detail-endpoint.ts
Mc Smog b8f170d83b fix: update import paths in debug scripts after reorganization
- Fix relative imports in experiments/ scripts (../ → ../../)
- Clean up tsconfig.json exclude list (remove non-existent paths)
- All debug scripts now work from their new location

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-22 02:02:52 +05:00

56 lines
1.8 KiB
TypeScript

import 'dotenv/config';
import { MagnitApiScraper } from '../../scrapers/api/magnit/MagnitApiScraper.js';
import { Logger } from '../../utils/logger.js';
async function main() {
const storeCode = process.env.MAGNIT_STORE_CODE || '992301';
const productId = '1000233138'; // Из inspect скрипта
const scraper = new MagnitApiScraper({
storeCode,
storeType: process.env.MAGNIT_STORE_TYPE || '6',
catalogType: process.env.MAGNIT_CATALOG_TYPE || '1',
headless: process.env.MAGNIT_HEADLESS !== 'false',
});
try {
await scraper.initialize();
Logger.info(`Попытка получить детали товара ${productId}...\n`);
// Пробуем разные возможные endpoints для деталей товара
const endpoints = [
`/webgate/v2/goods/${productId}`,
`/webgate/v2/products/${productId}`,
`/webgate/v2/catalog/product/${productId}`,
`/webgate/v2/goods/detail/${productId}`,
];
for (const endpoint of endpoints) {
try {
Logger.info(`Пробую: ${endpoint}`);
const response = await (scraper as any).httpClient.get(endpoint);
Logger.info(`✅ Успех! Status: ${response.status}`);
Logger.info(JSON.stringify(response.data, null, 2));
break; // Если успешно, выходим из цикла
} catch (error: any) {
if (error.response?.status === 404) {
Logger.info(` ❌ 404 Not Found`);
} else if (error.response?.status === 403) {
Logger.info(` ❌ 403 Forbidden (нужна аутентификация)`);
} else {
Logger.info(`${error.response?.status || error.message}`);
}
}
}
} catch (error) {
Logger.error('❌ Ошибка:', error);
process.exit(1);
} finally {
await scraper.close();
}
}
main();