У меня есть схема в graphcool с этими узлами (не знаю, какой здесь правильный термин... лист? узел? модель? тип??)
type User @model {
auth0UserId: String @isUnique
createdAt: DateTime!
id: ID! @isUnique
userIdentifier: String
bundleIdentifier: String
updatedAt: DateTime!
devices: [Device!]! @relation(name: "UserOnDevice")
tokens: [Token!]! @relation(name: "TokenOnUser")
}
type Device @model {
id: ID! @isUnique
deviceIdentifier: String!
users: [User!]! @relation(name: "UserOnDevice")
token: Token @relation(name: "DeviceOnToken")
}
Я хотел бы сделать так, чтобы пользователь должен был аутентифицироваться и быть связан с данными устройства, чтобы иметь возможность запрашивать его. Итак, для запроса типа:
query($deviceIdentifier: String!) {
device(deviceIdentifier: $deviceIdentifier) {
id
}
}
Это должно вернуть null, если они не прошли аутентификацию и не являются пользователем в указанном отношении. Я думал, что мне нужен запрос на разрешение, подобный этому:
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users: {
id: $user_id
}
})
}
Но оказывается, что это недействительно. Как это сделать?


query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users_some: {
id: $user_id
}
})
}
но это требует отправки user_id в запросе.