У меня есть сервер Node.js GraphQL.От клиента я пытаюсь получить все пользовательские записи с помощью запроса, подобного следующему:
{
user {
name
entries {
title
body
}
}
}
На сервере Node.js GraphQL, однако я хочу вернуть пользовательские записи, которые в настоящее время действительны, на основе publishDate
и expiryDate
в объекте записей.
Например:
{
"user": "john",
"entries": [
{
"title": "entry1",
"body": "body1",
"publishDate": "2019-02-12",
"expiryDate": "2019-02-13"
},
{
"title": "entry2",
"body": "body2",
"publishDate": "2019-02-13",
"expiryDate": "2019-03-01"
},
{
"title": "entry3",
"body": "body3",
"publishDate": "2020-01-01",
"expiryDate": "2020-01-31"
}
]
}
должен возвращать это
{
"user": "john",
"entries": [
{
"title": "entry2",
"body": "body2",
"publishDate": "2019-02-13",
"expiryDate": "2019-03-01"
}
]
}
entries
выбирается с помощью вызова delegateToSchema
(https://www.apollographql.com/docs/graphql-tools/schema-delegation.html#delegateToSchema) иУ меня нет возможности передать publishDate и expiryDate в качестве параметров запроса. По сути, мне нужно получить результаты и затем отфильтровать их в памяти.
Проблема, с которой я сталкиваюсь, заключается в том, что исходный запрос не имеетpublishDate
и expiryDate
в нем для поддержки этого. Есть ли способ добавить эти поля в вызове DelegateToSchema, а затем удалить их при отправке их обратно клиенту?