Query Functions
Query FunctionsManipulasi Field Kondisional

Manipulasi Field Kondisional

Included in the “Power Extensions” bundle

Penambahan meta-direktif @if dan @unless ke skema GraphQL, untuk mengeksekusi direktif bersarang secara kondisional pada field tersebut.

@if

@if mengeksekusi direktif bersarangnya hanya jika suatu kondisi bernilai true.

Dalam query ini, pengguna "Leo" dan "Peter" mendapatkan nama mereka diubah menjadi huruf kapital, karena mereka berada dalam array "pengguna spesial", sementara "Martin" tidak:

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

...menghasilkan:

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

@unless

Mirip dengan @if, tetapi mengeksekusi direktif bersarang ketika kondisi bernilai false.

Dalam query ini, pengguna "Martin" yang mendapatkan namanya diubah menjadi huruf kapital, sementara yang lain tidak:

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

...menghasilkan:

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