Query Functions
Query FunctionsManipulación Condicional de Campos

Manipulación Condicional de Campos

Included in the “Power Extensions” bundle

Adición de las meta-directivas @if y @unless al esquema GraphQL, para ejecutar de forma condicional una directiva anidada sobre el campo.

@if

@if ejecuta sus directivas anidadas solo si una condición tiene valor true.

En esta consulta, los usuarios "Leo" y "Peter" ven sus nombres convertidos a mayúsculas, ya que están en el array de "usuarios especiales", mientras que "Martin" no:

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

...produciendo:

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

@unless

Similar a @if, pero ejecuta las directivas anidadas cuando la condición es false.

En esta consulta, es el usuario "Martin" quien ve su nombre convertido a mayúsculas, mientras que los otros no:

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

...produciendo:

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