Query Functions
Query FunctionsManipulação Condicional de Campos

Manipulação Condicional de Campos

Included in the “Power Extensions” bundle

Adição das meta-diretivas @if e @unless ao schema GraphQL, para executar condicionalmente uma diretiva aninhada no campo.

@if

@if executa suas diretivas aninhadas somente se uma condição tiver o valor true.

Nesta query, os usuários "Leo" e "Peter" têm seus nomes convertidos para maiúsculas, pois estão no array de "usuários especiais", enquanto "Martin" não:

query {
  users {
    name
      @passOnwards(as: "userName")
      @applyField(
        name: "_inArray"
        arguments: {
          value: $userName
          array: ["Leo", "John", "Peter"]
        }
        passOnwardsAs: "isSpecialUser"
      )
      @if(
        condition: $isSpecialUser
      )
        @strUpperCase
  }
}

...produzindo:

{
  "data": {
    "users": [
      {
        "name": "LEO"
      },
      {
        "name": "Martin"
      },
      {
        "name": "PETER"
      }
    ]
  }
}

@unless

Semelhante a @if, mas executa as diretivas aninhadas quando a condição é false.

Nesta query, é o usuário "Martin" quem tem o nome convertido para maiúsculas, enquanto os demais não:

query {
  users {
    name
      @passOnwards(as: "userName")
      @applyField(
        name: "_inArray"
        arguments: {
          value: $userName
          array: ["Leo", "John", "Peter"]
        }
        passOnwardsAs: "isSpecialUser"
      )
      @unless(
        condition: $isSpecialUser
      )
        @strUpperCase
  }
}

...produzindo:

{
  "data": {
    "users": [
      {
        "name": "Leo"
      },
      {
        "name": "MARTIN"
      },
      {
        "name": "Peter"
      }
    ]
  }
}