Перед тем, как погрузиться в код, я объясню мой вопрос на высоком уровне:
В моей схеме GraphQL
у меня есть два корневых типа: Разработчики и Проекты .Я пытаюсь найти всех разработчиков, которые являются частью данного проекта.Запрос может выглядеть следующим образом:
{
project(id:2) {
title
developers {
firstName
lastName
}
}
}
В настоящее время я получаю null
значение для разработчиков .
Фиктивные данные
const developers = [
{
id: '1',
firstName: 'Brent',
lastName: 'Journeyman',
projectIds: ['1', '2']
},
{
id: '2',
firstName: 'Laura',
lastName: 'Peterson',
projectIds: ['2']
}
]
const projects = [
{
id: '1',
title: 'Experimental Drug Bonanza',
company: 'Pfizer',
duration: 20,
},
{
id: '2',
title: 'Terrible Coffee Holiday Sale',
company: 'Starbucks',
duration: 45,
}
]
Итак, Брент работал над обоими проектами.Лаура работала над вторым проектом.Моя проблема в функции resolve
в ProjectType
.Я пробовал много запросов, но ни один из них не работает.
ProjectType
const ProjectType = new GraphQLObjectType({
name: 'Project',
fields: () => ({
id: { type: GraphQLID },
title: { type: GraphQLString },
company: { type: GraphQLString },
duration: { type: GraphQLInt },
developers: {
type: GraphQLList(DeveloperType),
resolve(parent, args) {
///////////////////////
// HERE IS THE ISSUE //
//////////////////////
return _.find(developers, { id: ? });
}
}
})
})
DeveloperType
const DeveloperType = new GraphQLObjectType({
name: 'Developer',
fields: () => ({
id: { type: GraphQLID },
firstName: { type: GraphQLString },
lastName: { type: GraphQLString }
})
})