javascript - Condicional donde condición en consulta GraphQL
tengo la siguiente consulta:
query MyExampleQuery($templateQuestionId: Int!, $assetId: Int) {
report_answer(
where: {
report_template_question: { id: { _eq: $templateQuestionId } },
asset_id: { _eq: $assetId } }
) {
id
}
}
y quiero que la condición asset_id del WHERE solo se aplique de manera condicional. Cuando se proporcione $assetId, debería ser una condición, de lo contrario no debería aplicarse en absoluto.
¿Cómo se puede lograr esto con GraphQL?
Respuesta #1
Sí, pero no de la manera que has descrito arriba.
Tienes:
query MyExampleQuery($templateQuestionId: Int!, $assetId: Int)
Lo cual dice que $templateQuestionId es obligatorio pero $assetId es opcional.
Cuando escribas tu resolver para esta consulta, puedes tener en cuenta la existencia (o ausencia) de assetId cuando ejecutes una consulta real en la base de datos.
Pero el propio lenguaje GraphQL no tiene el concepto de una cláusula where. Algunas API de GraphQL incluyen un where en sus objetos de entrada, pero no es parte del lenguaje.
