Query Functions
Query FunctionsWarunkowa Manipulacja Polami

Warunkowa Manipulacja Polami

Included in the “Power Extensions” bundle

Dodanie meta-dyrektyw @if i @unless do schematu GraphQL, aby warunkowo wykonywać zagnieżdżoną dyrektywę na polu.

@if

@if wykonuje swoje zagnieżdżone dyrektywy tylko wtedy, gdy warunek ma wartość true.

W tej query użytkownicy "Leo" i "Peter" mają swoje nazwy przekonwertowane na wielkie litery, ponieważ znajdują się w tablicy "specjalnych użytkowników", podczas gdy "Martin" nie:

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

...co daje:

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

@unless

Podobne do @if, ale wykonuje zagnieżdżone dyrektywy, gdy warunek ma wartość false.

W tej query to użytkownik "Martin" ma swoją nazwę przekonwertowaną na wielkie litery, podczas gdy pozostali nie:

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

...co daje:

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