Я новичок в GraphQL. Я использую graph.cool в проекте Vue.js с apollo.
- Я использую прямо сейчас кеш в памяти.
- Раньше у меня был простой запрос allPosts.
- А после создания нового я использовал хук update () и readQuery () + writeQuery ()
Однако я хочу, чтобы вошедшие в систему пользователи могли видеть только свои сообщения. Поэтому я изменил запрос с помощью фильтра.
query userStreams ($ownerId: ID!) {
allStreams(filter: {
owner: {
id: $ownerId
}
}) {
id
name
url
progress
duration
watched
owner {
id
}
}
}
Я думал, что мне нужно передать только переменную идентификатора пользователя. Однако это не работает. Я всегда получаю
Error: Can't find field allStreams({"filter":{"owner":{}}}) on object (ROOT_QUERY) undefined.
this.$apollo.mutate({
mutation: CREATE_STREAM,
variables: {
name,
url,
ownerId
},
update: (store, { data: { createStream } }) => {
const data = store.readQuery({
query: USERSTREAMS,
variables: {
id: ownerId
}
})
data.allStreams.push(createStream)
store.writeQuery({
query: USER_STREAMS,
variables: {
id: ownerId
},
data
})
}
})