docs: добавить планы по API ключам и отладке статистики
- API_KEYS_IMPLEMENTATION_PLAN.md - план реализации системы API ключей - API_KEYS_SECURITY_PLAN.md - план безопасности API ключей - API_KEYS_SIMPLE_PLAN.md - упрощенный план API ключей - DEBUG_SELLER_STATISTICS.md - отладка статистики селлеров - FIX_API_KEYS_SAVING.md - исправление сохранения API ключей 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
77
docs/FIX_API_KEYS_SAVING.md
Normal file
77
docs/FIX_API_KEYS_SAVING.md
Normal file
@ -0,0 +1,77 @@
|
||||
# 🔧 ИСПРАВЛЕНИЕ СОХРАНЕНИЯ API КЛЮЧЕЙ
|
||||
|
||||
## ПРОБЛЕМА
|
||||
|
||||
В настройках пользователя (вкладка API) поля для API ключей есть, но они не сохраняются в БД.
|
||||
|
||||
## ПРИЧИНА
|
||||
|
||||
В функции `handleSave` в user-settings.tsx отсутствует логика для сохранения API ключей через мутацию `ADD_MARKETPLACE_API_KEY`.
|
||||
|
||||
## РЕШЕНИЕ
|
||||
|
||||
### 1. Добавить в handleSave после сохранения профиля:
|
||||
|
||||
```typescript
|
||||
// Сохраняем API ключи маркетплейсов
|
||||
if (formData.wildberriesApiKey) {
|
||||
await apolloClient.mutate({
|
||||
mutation: ADD_MARKETPLACE_API_KEY,
|
||||
variables: {
|
||||
input: {
|
||||
marketplace: 'WILDBERRIES',
|
||||
apiKey: formData.wildberriesApiKey,
|
||||
validateOnly: false,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
if (formData.ozonApiKey) {
|
||||
await apolloClient.mutate({
|
||||
mutation: ADD_MARKETPLACE_API_KEY,
|
||||
variables: {
|
||||
input: {
|
||||
marketplace: 'OZON',
|
||||
apiKey: formData.ozonApiKey,
|
||||
clientId: formData.ozonClientId, // если требуется
|
||||
validateOnly: false,
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
### 2. Импортировать мутацию:
|
||||
|
||||
```typescript
|
||||
import { UPDATE_USER_PROFILE, UPDATE_ORGANIZATION_BY_INN, ADD_MARKETPLACE_API_KEY } from '@/graphql/mutations'
|
||||
```
|
||||
|
||||
### 3. Обновить GET_ME запрос после сохранения:
|
||||
|
||||
```typescript
|
||||
// Обновляем кэш с новыми API ключами
|
||||
await apolloClient.refetchQueries({
|
||||
include: [GET_ME],
|
||||
})
|
||||
```
|
||||
|
||||
## АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ
|
||||
|
||||
Создать отдельную страницу управления API ключами с:
|
||||
|
||||
- Валидацией ключей перед сохранением
|
||||
- Показом статуса интеграции
|
||||
- Возможностью удаления ключей
|
||||
- Тестированием соединения
|
||||
|
||||
## ТЕКУЩИЙ СТАТУС ПОЛЬЗОВАТЕЛЕЙ
|
||||
|
||||
Пользователи МОГУТ добавлять API ключи через:
|
||||
|
||||
1. Регистрацию (если добавлена логика)
|
||||
2. GraphQL мутацию напрямую
|
||||
3. Prisma Studio (администратор)
|
||||
|
||||
НО НЕ МОГУТ через UI настроек!
|
Reference in New Issue
Block a user