Query Functions
Query FunctionsKoşullu Alan Manipülasyonu

Koşullu Alan Manipülasyonu

Included in the “Power Extensions” bundle

GraphQL şemasına @if ve @unless meta yönergelerinin eklenmesi; bu sayede bir alana iç içe geçmiş yönerge koşullu olarak uygulanabilir.

@if

@if, bir koşulun true değerine sahip olması durumunda iç içe geçmiş yönergelerini çalıştırır.

Bu query'de, "Leo" ve "Peter" kullanıcıları "özel kullanıcı" dizisinde yer aldıkları için isimleri büyük harfe dönüştürülürken "Martin" için bu işlem yapılmaz:

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

...şu çıktıyı üretir:

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

@unless

@if ile benzerdir; ancak koşul false olduğunda iç içe geçmiş yönergeleri çalıştırır.

Bu query'de, adı büyük harfe dönüştürülen kullanıcı "Martin" olurken diğerleri dönüştürülmez:

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

...şu çıktıyı üretir:

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