Добавлены новые поля ssd в типы GraphQL и обновлен резолвер для улучшения обработки категорий и узлов. Реализована логика получения узлов в зависимости от наличия categoryId и SSD, что повышает гибкость и надежность взаимодействия с API.
This commit is contained in:
@ -1825,7 +1825,63 @@ export const resolvers = {
|
||||
ssdLength: ssd?.length
|
||||
})
|
||||
|
||||
const result = await laximoService.getListUnits(catalogCode, vehicleId, ssd, categoryId)
|
||||
let result: any[] = []
|
||||
|
||||
// Если есть categoryId, то мы ищем узлы в конкретной категории
|
||||
if (categoryId) {
|
||||
console.log('🔧 Поиск узлов в категории:', categoryId)
|
||||
|
||||
// Для обычных категорий НЕ используем SSD - он нужен только для быстрых групп
|
||||
try {
|
||||
console.log('🔧 Пробуем ListUnits БЕЗ SSD для обычной категории...')
|
||||
result = await laximoService.getListUnits(catalogCode, vehicleId, undefined, categoryId)
|
||||
console.log('✅ Получено узлов в категории:', result.length)
|
||||
} catch (error: any) {
|
||||
console.log('⚠️ Ошибка ListUnits без SSD:', error.message)
|
||||
|
||||
// Если и без SSD не работает, пробуем получить категории вместо узлов
|
||||
try {
|
||||
console.log('🔧 Пробуем получить подкатегории...')
|
||||
result = await laximoService.getListCategories(catalogCode, vehicleId, undefined)
|
||||
// Фильтруем только подкатегории данной категории, если есть parent-child связи
|
||||
console.log('✅ Получено подкатегорий:', result.length)
|
||||
} catch (categoriesError: any) {
|
||||
console.log('⚠️ Ошибка получения подкатегорий:', categoriesError.message)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Если categoryId нет, получаем список всех категорий
|
||||
console.log('🔧 Получаем список всех категорий...')
|
||||
try {
|
||||
result = await laximoService.getListCategories(catalogCode, vehicleId, ssd)
|
||||
|
||||
// Если получили категории, используем SSD из первой категории для получения узлов
|
||||
if (result.length > 0 && result[0].ssd) {
|
||||
console.log('🔧 Найден SSD в категориях, пробуем получить узлы...')
|
||||
const categorySsd = result[0].ssd
|
||||
console.log('🔑 SSD из категории:', categorySsd.substring(0, 30) + '...')
|
||||
|
||||
// Пробуем получить узлы для первой категории с найденным SSD
|
||||
try {
|
||||
const unitsResult = await laximoService.getListUnits(catalogCode, vehicleId, categorySsd, result[0].quickgroupid)
|
||||
if (unitsResult.length > 0) {
|
||||
console.log('✅ Получены узлы с SSD из категории:', unitsResult.length)
|
||||
result = unitsResult
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.log('⚠️ Ошибка получения узлов с SSD из категории:', error.message)
|
||||
}
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.log('⚠️ Ошибка ListCategories:', error.message)
|
||||
// Пробуем без SSD
|
||||
if (ssd) {
|
||||
console.log('🔧 Пробуем ListCategories без SSD...')
|
||||
result = await laximoService.getListCategories(catalogCode, vehicleId, undefined)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log('✅ GraphQL Resolver - получено узлов каталога:', result?.length || 0)
|
||||
|
||||
if (result && result.length > 0) {
|
||||
|
@ -1394,6 +1394,7 @@ export const typeDefs = gql`
|
||||
code: String
|
||||
imageurl: String
|
||||
largeimageurl: String
|
||||
ssd: String
|
||||
}
|
||||
|
||||
type LaximoQuickGroupsResponse {
|
||||
@ -1414,6 +1415,7 @@ export const typeDefs = gql`
|
||||
description: String
|
||||
imageurl: String
|
||||
largeimageurl: String
|
||||
ssd: String
|
||||
details: [LaximoDetail!]
|
||||
attributes: [LaximoDetailAttribute!]
|
||||
}
|
||||
@ -1554,6 +1556,7 @@ export const typeDefs = gql`
|
||||
description: String
|
||||
imageurl: String
|
||||
largeimageurl: String
|
||||
ssd: String
|
||||
attributes: [LaximoDetailAttribute!]
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user