debug: добавить скрипты отладки и бэкапы для диагностики проблем

- api_keys_backup_1758196936364.json - резервная копия API ключей
- check-active-key.js - проверка активного API ключа
- check-all-keys.js - проверка всех API ключей в системе
- check-new-seller.js - проверка нового селлера
- test-api-key-save.js - тестирование сохранения API ключей
- test-graphql-stats.js - тестирование GraphQL статистики
- test-resolver-direct.js - прямое тестирование резолверов
- test-sidebar.html - тестирование сайдбара
- test-statistics-direct.js - прямое тестирование статистики

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Veronika Smirnova
2025-09-18 21:32:23 +03:00
parent b6935428ab
commit d19530a985
9 changed files with 853 additions and 0 deletions

95
test-graphql-stats.js Normal file
View File

@ -0,0 +1,95 @@
import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function testGraphQLStats() {
try {
console.log('🔍 ТЕСТИРОВАНИЕ ЛОГИКИ РЕЗОЛВЕРА getWildberriesStatistics')
// Имитируем логику резолвера
const user = await prisma.user.findFirst({
where: { phone: '79988888888' },
include: {
organization: {
include: { apiKeys: true },
},
},
})
if (!user?.organization) {
console.log('❌ Пользователь не привязан к организации')
return
}
console.log('\n👤 ПОЛЬЗОВАТЕЛЬ:')
console.log('- ID:', user.id)
console.log('- Телефон:', user.phone)
console.log('- Организация:', user.organization.name)
// Логика поиска API ключа как в резолвере
const apiKey = user.organization.apiKeys.find((key) => key.marketplace === 'WILDBERRIES' && key.isActive)
console.log('\n🔍 ПОИСК API КЛЮЧА:')
console.log('- Всего ключей в организации:', user.organization.apiKeys.length)
console.log('- Найденный ключ:', !!apiKey)
if (!apiKey) {
console.log('❌ ПРОБЛЕМА: API ключ не найден через find()')
// Выводим все ключи для дебага
user.organization.apiKeys.forEach((key, index) => {
console.log(`\n--- КЛЮЧ ${index + 1} ---`)
console.log('- ID:', key.id)
console.log('- Marketplace:', key.marketplace)
console.log('- Active:', key.isActive)
console.log('- Условие WILDBERRIES:', key.marketplace === 'WILDBERRIES')
console.log('- Условие Active:', key.isActive === true)
console.log('- Полное условие:', key.marketplace === 'WILDBERRIES' && key.isActive)
})
return
}
console.log('\n✅ API КЛЮЧ НАЙДЕН:')
console.log('- ID:', apiKey.id)
console.log('- Marketplace:', apiKey.marketplace)
console.log('- Active:', apiKey.isActive)
console.log('- Длина ключа:', apiKey.apiKey?.length)
console.log('- Тип:', apiKey.apiKey?.startsWith('eyJ') ? 'JWT' : 'Другой')
// Проверим, работает ли сам API ключ
console.log('\n🌐 ТЕСТИРОВАНИЕ ЗАПРОСА К WILDBERRIES API:')
const testUrl = 'https://statistics-api.wildberries.ru/api/v1/supplier/sales?dateFrom=2025-09-01'
try {
const response = await fetch(testUrl, {
headers: {
Authorization: apiKey.apiKey,
'Content-Type': 'application/json',
},
})
console.log('- HTTP статус:', response.status)
console.log('- OK:', response.ok)
if (response.ok) {
const data = await response.json()
console.log('- Данные получены, тип:', typeof data)
console.log('- Является массивом:', Array.isArray(data))
console.log('- Длина:', data?.length || 'N/A')
} else {
const errorText = await response.text()
console.log('- Ошибка API:', errorText)
}
} catch (fetchError) {
console.error('❌ ОШИБКА ЗАПРОСА:', fetchError.message)
}
} catch (error) {
console.error('❌ КРИТИЧЕСКАЯ ОШИБКА:', error)
} finally {
await prisma.$disconnect()
}
}
testGraphQLStats()