Можно ли игнорировать необходимый тип, используемый с @include в graphql? - PullRequest
0 голосов
/ 08 января 2020

Можно ли игнорировать требуемый тип (в этом случае ввод типа createCarEvent содержит переменную $from как String!) при использовании @include? Я попытался использовать $from как String вместо String!, но это привело к исключению:

Переменная "$ from" типа "String", используемая в типе, ожидающем положение, "String!" "

$isNeedCreateCarEvent проверяет, существуют ли две переменные ($from и $to).

mutation rejectBooking(... $from: String, $to: String, $isNeedCreateCarEvent: Boolean!) {
...
createCarEvent(
  input: {
    ...
    from: $from
    to: $to
  }
) @include(if: $isNeedCreateCarEvent) {
  ...eventItem
}

Схема:

    input CarEventInput {
    ...
    from: String!
    to: String
  }

1 Ответ

1 голос
/ 08 января 2020

GraphQL не может знать, что $from всегда предоставляется, если $isNeedCreateCarEvent равно true, объявления типов не могут express этого (и ваш вызывающий код не может этого гарантировать).

Вам лучше использовать две отдельные мутации, одну с createCarEvent и одну без, если вы хотите сделать $from и $to необязательными.

Если это будет означать слишком много повторений для вас (из-за остальная часть запроса), единственный способ - объявить параметры как ненулевые и передать пустые строки как фиктивные значения при использовании $isNeedCreateCarEvent = false.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...