Добавлены новые поля ssd в типы GraphQL и обновлен резолвер для улучшения обработки категорий и узлов. Реализована логика получения узлов в зависимости от наличия categoryId и SSD, что повышает гибкость и надежность взаимодействия с API.
This commit is contained in:
@ -1825,7 +1825,63 @@ export const resolvers = {
|
|||||||
ssdLength: ssd?.length
|
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)
|
console.log('✅ GraphQL Resolver - получено узлов каталога:', result?.length || 0)
|
||||||
|
|
||||||
if (result && result.length > 0) {
|
if (result && result.length > 0) {
|
||||||
|
@ -1394,6 +1394,7 @@ export const typeDefs = gql`
|
|||||||
code: String
|
code: String
|
||||||
imageurl: String
|
imageurl: String
|
||||||
largeimageurl: String
|
largeimageurl: String
|
||||||
|
ssd: String
|
||||||
}
|
}
|
||||||
|
|
||||||
type LaximoQuickGroupsResponse {
|
type LaximoQuickGroupsResponse {
|
||||||
@ -1414,6 +1415,7 @@ export const typeDefs = gql`
|
|||||||
description: String
|
description: String
|
||||||
imageurl: String
|
imageurl: String
|
||||||
largeimageurl: String
|
largeimageurl: String
|
||||||
|
ssd: String
|
||||||
details: [LaximoDetail!]
|
details: [LaximoDetail!]
|
||||||
attributes: [LaximoDetailAttribute!]
|
attributes: [LaximoDetailAttribute!]
|
||||||
}
|
}
|
||||||
@ -1554,6 +1556,7 @@ export const typeDefs = gql`
|
|||||||
description: String
|
description: String
|
||||||
imageurl: String
|
imageurl: String
|
||||||
largeimageurl: String
|
largeimageurl: String
|
||||||
|
ssd: String
|
||||||
attributes: [LaximoDetailAttribute!]
|
attributes: [LaximoDetailAttribute!]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user