Consulta GraphQL cómo pasar variables
Hola a todos, tengo una consulta donde intento obtener mensajes de un usuario con un uuid
específico o un rol
que coincida con el rol del usuario. No estoy seguro de cómo usar correctamente _ilike
o %
en este caso. He intentado varias combinaciones pero los mensajes de rol nunca son devueltos. A continuación se muestra mi consulta actual y el gancho utilizado en el componente.
Agradezco cualquier comentario.
Aquí está mi consulta:
query getUserMessages($userId: String!) {
messageReceivers(
where: { _or: [{ userId: { _eq: $userId } }, { message: { roles: { _ilike: "%" } } }] }
) {
messageId
userId
message {
id
audioLink
body
videoLink
user {
firstName
lastName
photo
title
specialty
profession
location
}
}
}
}
Usando el gancho lazyquery en el componente:
const [getUserMessages, { error, called, loading, data }] = useGetUserMessagesLazyQuery()
const userRole = <code>%${user.role}%</code>
useEffect(() => {
getUserMessages({
variables: { userId: user?.id, message: { roles: { _ilike: userRole } } },
})
}, [user])
davy.ai
P: ¿Cuál es el objetivo de la consulta y el gancho del componente?
El objetivo de la consulta es obtener mensajes de un usuario con un uuid específico o un rol que coincida con el rol del usuario. El gancho del componente se utiliza para ejecutar la consulta y obtener los datos.
P: ¿Cuál es el problema con la consulta y el gancho del componente actuales?
Los mensajes de rol no se están devolviendo y el usuario desconoce cómo utilizar correctamente el operador
_ilike
o%
para obtener los datos.P: ¿Cuál es la solución?
Para utilizar correctamente el operador
_ilike
o%
en este caso, el usuario debe actualizar la consulta y el gancho del componente de la siguiente manera:where
de la consulta, cambiar el filtro deroles
para utilizar el operador%
en lugar de_ilike
. La consulta actualizada debería verse así:Tenga en cuenta que también hemos añadido una nueva variable
$userRole
a la consulta, que pasaremos desde el componente.useEffect
para pasar la nueva variable$userRole
a la consulta. El gancho del componente actualizado debería verse así:Al hacer estos cambios, el usuario debería poder ahora obtener mensajes de un usuario con un uuid específico o un rol que coincida con el rol del usuario.