我在带有这些节点的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
}
})
}
但是事实证明那是无效的。我该怎么办?
答案 0 :(得分:1)
query ($node_id: ID!, $user_id: ID!) {
SomeDeviceExists(filter: {
id: $node_id,
users_some: {
id: $user_id
}
})
}
但这确实需要在请求中提交user_id。