Query-functiesVoorwaardelijke Veldmanipulatie
Voorwaardelijke Veldmanipulatie
Included in the “Power Extensions” bundle
Toevoeging van meta-directives @if en @unless aan het GraphQL-schema, om een geneste directive op het veld voorwaardelijk uit te voeren.
@if
@if voert de geneste directives alleen uit als een voorwaarde de waarde true heeft.
In deze query krijgen gebruikers "Leo" en "Peter" hun namen omgezet naar hoofdletters, omdat ze in de array van "speciale gebruikers" staan, terwijl "Martin" dat niet krijgt:
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@if(
condition: $isSpecialUser
)
@strUpperCase
}
}...wat het volgende oplevert:
{
"data": {
"users": [
{
"name": "LEO"
},
{
"name": "Martin"
},
{
"name": "PETER"
}
]
}
}@unless
Vergelijkbaar met @if, maar voert de geneste directives uit wanneer de voorwaarde false is.
In deze query is het gebruiker "Martin" die zijn naam omgezet krijgt naar hoofdletters, terwijl de anderen dat niet krijgen:
query {
users {
name
@passOnwards(as: "userName")
@applyField(
name: "_inArray"
arguments: {
value: $userName
array: ["Leo", "John", "Peter"]
}
passOnwardsAs: "isSpecialUser"
)
@unless(
condition: $isSpecialUser
)
@strUpperCase
}
}...wat het volgende oplevert:
{
"data": {
"users": [
{
"name": "Leo"
},
{
"name": "MARTIN"
},
{
"name": "Peter"
}
]
}
}