Просто загрузите предоставленную вами схему, вот сгенерированное GoalInput
:
input GoalInput {
title: String!
completed: Boolean!
}
Если вы не можете создавать новые цели с помощью поля owner
, тогда вы не можете запросить их - owner
будет be null
Попробуйте обновить схему, включив в нее поле целей для пользователя, чтобы получить искомое отношение «один ко многим». ( fauna docs )
type User {
name: String!
username: String! @unique
goals: [Goal] @relation
}
Затем убедитесь, что каждый раз, когда вы создаете новую цель, вы устанавливаете владельца на себя.
Альтернатива с использованием функций
Вы можете создать пользовательскую мутацию для createGoalForMe
, которая автоматически установит для вас поле владельца.
Убедитесь, что вы предоставили call
привилегии для новой функции.
Проверка разрешений
Лямбда разрешения на запись получает в качестве аргументов как newData, так и oldData.
/*...*/
{
resource: Collection("Goal"),
actions: {
/*...*/
write: Query(
Lambda(
["oldData", "newData"],
And(
Equals(Identity(), Select(["data", "owner"], Var("oldData"))),
Equals(
Select(["data", "owner"], Var("oldData")),
Select(["data", "owner"], Var("newData"))
)
)
)
)
},
/*...*/
}
/*...*/
Поэтому измените "goalRef"
на ["oldData", "newData"]
, и я думаю, что оно должно быть у вас.