Query Functions
Query FunctionsManipolazione Condizionale dei Campi

Manipolazione Condizionale dei Campi

Included in the “Power Extensions” bundle

Aggiunta delle meta-direttive @if e @unless allo schema GraphQL, per eseguire in modo condizionale una direttiva annidata sul campo.

@if

@if esegue le sue direttive annidate solo se una condizione ha valore true.

In questa query, gli utenti "Leo" e "Peter" vedono i loro nomi convertiti in maiuscolo, poiché figurano nell'array degli "utenti speciali", mentre "Martin" no:

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

...producendo:

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

@unless

Simile a @if, ma esegue le direttive annidate quando la condizione è false.

In questa query, è l'utente "Martin" a vedere il proprio nome convertito in maiuscolo, mentre gli altri no:

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

...producendo:

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